如何在Matlab中构造任意函数的泰勒展开式?

时间:2016-04-13 03:07:23

标签: matlab wolfram-mathematica

我正在读一本由Shijun Liao撰写的题为“非线性微分方程的同伦分析方法”的书。在第13章“金融应用:美国看跌期权”中,附录中有关于该章的数学代码。但是,我没有Mathematica而是Matlab,我想在Matlab中重写代码。

以下是Mathematica代码的第一部分:

<<Calculus`Pade`;
<<Graphics`Graphics`;

(* Define approx[f] for Taylor expansion of f *)
approx[f_] := Module[{temp},
temp[0] = Series[f, {t, 0, OrderTaylor}]//Normal;
temp[1] = temp[0] /. t^(n_.)*Derivative[j_][DiracDelta][0] -> 0;
temp[2] = temp[1] /. t^(n_.)*DiracDelta[0] -> 0;
temp[3] = temp[2] /. DiracDelta[0] -> 0;
temp[4] = temp[3] /. Derivative[j_][DiracDelta][0] -> 0;
temp[5] = N[temp[4],60]//Expand;
If[KeyCutOff == 1, temp[5] = temp[5]//Chop];
temp[5]
];

我从Wolfram参考网站得知,系列[f,{x,x0,n}]为f点生成幂级数展开,关于点x = x0到阶(x-x0)^ n。因此,我需要为f构建一个幂级数的扩展。但是,据我所知,在matlab中,我们必须首先定义f,例如f = cos(x)等。所以,我的问题是,如何在Matlab中构造任意函数的泰勒展开?

提前致谢。

1 个答案:

答案 0 :(得分:0)

查看符号工具箱http://www.mathworks.com/help/symbolic/taylor.html

中的泰勒函数