【问题标题】:Summation series using matlab使用matlab求和系列
【发布时间】:2012-10-04 06:00:37
【问题描述】:

当我在 matlab 中写这个时

syms x;
f=x^3-cos(x);
g=diff(f)

输出为

g =

3*x^2+sin(x)

现在我想生成总和系列为

我在谷歌上找到了“symsum”命令,但是当我编写以下命令时它并没有完成我所需的任务

syms k
symsum(k^2, 0, 10)
symsum(1/k^2,1,Inf)

它给出的输出为

ans = 385

ans = pi^2/6

你们能指导我如何生成产生输出为的系列

这样当我给出命令时 diff(Sk);它应该产生类似的结果

例如在 Mathematica 中我可以这样做

您的帮助肯定会有很大帮助。

【问题讨论】:

    标签: matlab series symbolic-math


    【解决方案1】:

    我查看了 symsum 函数的帮助,你有一个很好的例子,试试这个:

    syms x;
    syms k real;
    symsum(x^k/sym('k!'), k, 0, inf)
    

    此命令评估系列,实际上评估为。如您所见,您必须指定系列的术语及其对“k”的依赖性。然后在 symsum 命令中,您必须指定要对 'k' 从 0 到 inf 求和。

    例如,您可以执行以下操作:

    syms x;
    syms k real;
    ak = (-1)^k*x^(2*k+1)/sym('(2*k+1)!');
    sum_ak = symsum(ak, k, 0, inf);     % gives back sin(x)
    dak = diff(ak,x);
    sum_dak = symsum(dak, k, 0, inf);   % should give back cos(x), but does not
    A5 = symsum(ak, k, 0, 5);           % add only the first values of the series
    DA5 = symsum(dak, k, 0, 5);         % add the derivated terms of the series
    

    您可以声明多个符号变量uk并将它们相加:

    syms x;
    syms k real;
    n = 5;
    for i = 0:n
        eval(['syms u',num2str(i),' real;']);
    end
    
    A = cell(1,n);
    for i=1:n
        A{i} = u0;
        for j=1:i
            eval(['A{i} = A{i} + u',num2str(j),';']);
        end
    end
    A{3} % check the value of A{i}
    

    希望这会有所帮助,

    【讨论】:

    • 感谢您的努力,但先生,我想使用下标,因为我提到我想生成一系列 a0+a1+a2....,我还添加了 Mathematica 的示例。你能在这方面帮助我吗?
    • 我已经编辑了部分代码。如果您需要的话,您也可以进行有限总和。我认为 Matlab 的符号核心使用 Maple 的实现或类似的东西。如果你可以在 Maple 中做某事,那么你应该可以在符号 Matlab 中做到这一点。不幸的是,我对 Maple 或 Mathematica 了解不多。
    猜你喜欢
    • 1970-01-01
    • 2013-10-31
    • 2014-10-12
    • 1970-01-01
    • 2013-11-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多