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

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

我正在看廖世军的《非线性微分方程同伦分析法》,第13章金融应用:美式看跌期权,附录了该章的mathematica代码,但是我没有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 Reference 网站得知 Series[f,{x,x0,n}] 生成关于点 x=x0 的 f 幂级数展开,阶为 (x-x0)^n。因此,我需要为 f 构造一个幂级数展开。但是,据我所知,在 matlab 中,我们必须先定义 f,例如 f=cos(x) 等。所以,我的问题是,如何在 Matlab 中构造任意函数的泰勒展开式?

提前致谢。

答案1

如果你想在 Matlab 中使用数学,就像在 Mathematica 中一样,你将需要'符号数学工具箱“”。

使用该工具箱,可以直接使用内置裁缝功能

请参阅有关该函数的页面以获取语法示例

相关内容