我正在尝试编写一个通用函数来查找输入到函数中的值的余弦值 . 我正在使用的余弦公式是:
n cosx = sum((-1)^n*x^(2n)/(2n)!) n=1
我查看了matlab文档,并且this page暗示"sum"函数应该能够这样做,所以我尝试通过输入来测试它:
sum(x^n, n=1..3)
但它只是给了我“错误:等号左边的表达式不是作业的有效目标” .
总结一个无限系列的东西,matlab默认可以做,或者我是否必须使用函数和循环来模拟它?
好吧,如果你想将它近似为有限数量的术语,你可以在没有工具箱或循环的Matlab中完成它:
sumCos = @(x, n)(sum(((-1).^(0:n)).*(x.^(2*(0:n)))./(factorial(2*(0:n)))));
然后像这样使用它
sumCos(pi, 30)
第一个参数是角度,第二个参数是你想要系列的术语数(即影响精度) . 这是一个数值解决方案,我认为这正是你所追求的 .
顺便说一下,我冒昧地纠正你的初始金额,如果你想要近似的话,肯定必须从0开始 cos
cos
如果你想了解我的公式(你肯定会这样做),那么你需要阅读一些基本的Matlab基础知识,即colon operator,然后是使用 . 执行element-wise operations的概念 .
.
在MATLAB本身,没有,你无法解决无限的总和 . 您必须按照建议估算它 . 您正在查看的页面是Symbolic Math工具箱的一部分,该工具箱是MATLAB的附加组件 . 特别是,你在看MuPAD,它与Mathematica非常相似 . 它是一个符号化的数学工作空间,而MATLAB更像是一个数学数学工作空间 . 如果您拥有Symbolic Math工具箱,您可以按照上面的尝试使用MuPAD,也可以使用MATLAB中的symsum函数来执行系列的总和 .
2 回答
好吧,如果你想将它近似为有限数量的术语,你可以在没有工具箱或循环的Matlab中完成它:
然后像这样使用它
第一个参数是角度,第二个参数是你想要系列的术语数(即影响精度) . 这是一个数值解决方案,我认为这正是你所追求的 .
顺便说一下,我冒昧地纠正你的初始金额,如果你想要近似的话,肯定必须从0开始
cos
如果你想了解我的公式(你肯定会这样做),那么你需要阅读一些基本的Matlab基础知识,即colon operator,然后是使用
.
执行element-wise operations的概念 .在MATLAB本身,没有,你无法解决无限的总和 . 您必须按照建议估算它 . 您正在查看的页面是Symbolic Math工具箱的一部分,该工具箱是MATLAB的附加组件 . 特别是,你在看MuPAD,它与Mathematica非常相似 . 它是一个符号化的数学工作空间,而MATLAB更像是一个数学数学工作空间 . 如果您拥有Symbolic Math工具箱,您可以按照上面的尝试使用MuPAD,也可以使用MATLAB中的symsum函数来执行系列的总和 .