Я читаю книгу под названием "Метод гомотопического анализа в нелинейных дифференциальных уравнениях" Шицзюня Ляо. В главе 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 ответ1

0

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

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .