matlab中的级数求和

matlab中的级数求和,matlab,sum,series,trigonometry,Matlab,Sum,Series,Trigonometry,我正在尝试编写一个通用函数,用于查找输入到函数中的值的余弦。我使用的余弦公式是: n cosx = sum((-1)^n*x^(2n)/(2n)!) n=1 我已经看过了matlab文档,并暗示“sum”函数应该能够做到这一点,因此我尝试通过输入以下内容来测试它: sum(x^n, n=1..3) 但它只给了我“错误:等号左边的表达式不是赋值的有效目标” 求无穷级数的和是matlab默认能够做到的,还是我必须用函数和循环来模拟它?在matlab中,不,你不能求无

我正在尝试编写一个通用函数,用于查找输入到函数中的值的余弦。我使用的余弦公式是:

        n
cosx = sum((-1)^n*x^(2n)/(2n)!)
       n=1
我已经看过了matlab文档,并暗示“sum”函数应该能够做到这一点,因此我尝试通过输入以下内容来测试它:

sum(x^n, n=1..3)
但它只给了我“错误:等号左边的表达式不是赋值的有效目标”


求无穷级数的和是matlab默认能够做到的,还是我必须用函数和循环来模拟它?

在matlab中,不,你不能求无穷和。你得按你的建议估计一下。您正在查看的页面是符号数学工具箱的一部分,它是MATLAB的一个附加组件。特别是,您看到的是MuPAD,它与Mathematica非常相似。它是一个符号数学工作区,而MATLAB更像是一个数值数学工作区。如果您拥有符号数学工具箱,您可以像上面尝试的那样使用MuPAD,也可以使用MATLAB本身的函数来执行级数求和。

如果您想将其近似为有限个项,您可以在MATLAB中执行,而无需工具箱或循环:

sumCos = @(x, n)(sum(((-1).^(0:n)).*(x.^(2*(0:n)))./(factorial(2*(0:n)))));
然后像这样使用它

sumCos(pi, 30)
第一个参数是角度,第二个参数是要将序列带到的项数(即影响精度)。这是一个数值解,我想这才是你真正想要的

顺便说一句,我冒昧地更正了您的初始总和,如果您试图近似计算cos,那么n肯定必须从0开始


如果你想理解我的公式(当然你会理解),那么你需要阅读一些基本的Matlab基础知识,即,以及使用
执行的概念。

谢谢。我理解你所做的;出于某种原因,我完全忘记了矢量化!是的,它肯定应该从零开始;我的错误。