How to constuct Taylor expansion of arbitrary function in Matlab?

Я читаю книгу под названием "Метод гомотопического анализа в нелинейных дифференциальных уравнениях" Шицзюня Ляо. В главе 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, что Series[f,{x,x0,n}] генерирует разложение степенных рядов для f относительно точки x=x0 до порядка (x-x0)^n. Таким образом, мне нужно построить степенной ряд разложения для f. Однако, насколько я знаю, в matlab мы должны сначала определить f, например, f=cos(x) и т. Д. Итак, мой вопрос: как построить разложение в ряд Тейлора произвольной функции в Matlab?

Заранее спасибо.

1 ответ

Если вы хотите использовать математику в Matlab, как это делается в Mathematica, вам понадобится " Symbolic Math Toolbox".

С этим набором инструментов это просто, используя встроенную функцию адаптации

Смотрите страницу об этой функции для примеров синтаксиса

Другие вопросы по тегам