![如何在Matlab中构造任意函数的泰勒展开式?](https://linux22.com/image/1489971/%E5%A6%82%E4%BD%95%E5%9C%A8Matlab%E4%B8%AD%E6%9E%84%E9%80%A0%E4%BB%BB%E6%84%8F%E5%87%BD%E6%95%B0%E7%9A%84%E6%B3%B0%E5%8B%92%E5%B1%95%E5%BC%80%E5%BC%8F%EF%BC%9F.png)
我正在看廖世军的《非线性微分方程同伦分析法》,第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 中构造任意函数的泰勒展开式?
提前致谢。