Мой вопрос относится к Symbolic Math Toolbox от Matlab. У меня есть следующий код:Как хранить символически производные в matlab
syms x x_0 u delta sigma_1
mu = sym ('mu(x)');
sigma_u = sym ('sigma(u)');
sigma = sym ('sigma(x)');
f = int (1/sigma_u, u, x_0, x);
df = subs(diff(f,x))
df_2 = subs(diff (f,x,2))
L = subs(mu*df+1/2*sigma^2*df_2)
Результат L является Corect
L =
mu(x)/sigma(x) - diff(sigma(x), x)/2
Однако для дальнейших выводов и для простоты, я хотел бы определить
sigma_1 = sym('diff(sigma,x)');
или в аналогичным образом, чтобы получить результаты за
L =
mu(x)/sigma(x) - sigma_1(x)/2
В принципе, я хотел бы сохранить под именем символическое выражение diff (sigma (x), x), что Matlab знает, что, когда он получает этот результат в выражении, вместо имени diff() sigma (x), x)
'f' определяется с помощью интеграла, который Matlab не может оценить; это нормально или нет? – fpe
Здравствуйте. нет, это не проблема, Matlab не может в любом случае оценить интеграл, так как функция sigma (u) явно не определена. Matlab отлично справляется с применением правила Лейбница при вычислении L (через df и df_2). Тем не менее, я просто хотел бы, чтобы вместо ответа на вопрос – user1545441
diff (sigma (x), x) было имя для первого серийного файла, такого как sigma_1, который должен стоять за первую производную от sigma wrt x и в основном мне хотелось бы, чтобы sigma_1 всегда появляется в программе вместо diff (sigma (x), x). Впоследствии я хотел бы определить аналогично дальнейшие производные высшего порядка функции sigma. Спасибо – user1545441