Скажем, у меня есть эта функцияКак получить символическую частную производную по времени
f(t) = 4*sin(a(t)) + x(t)*y(t) + h + cos(y(t))*sin(x(t))
Как бы вычислить ее производную по времени?
Скажем, у меня есть эта функцияКак получить символическую частную производную по времени
f(t) = 4*sin(a(t)) + x(t)*y(t) + h + cos(y(t))*sin(x(t))
Как бы вычислить ее производную по времени?
Вы должны объявить переменные и функции внутри него как символический, а затем использовать диф:
clear
clc
syms a x y t h
a(t) = symfun(sym('a(t)'), t)
x(t) = symfun(sym('x(t)'), t)
y(t) = symfun(sym('y(t)'), t)
F = 4*sin(a(t)) + x(t)*y(t) + h + cos(y(t))*sin(x(t))
DerF_t = diff(F,t)
Давая следующее (грязный) вывод:
F = h + 4*sin(a(t)) + cos(y(t))*sin(x(t)) + x(t)*y(t)
DerF_t = x(t)*diff(y(t), t) + y(t)*diff(x(t), t) + 4*cos(a(t))*diff(a(t), t) + cos(x(t))*cos(y(t))*diff(x(t), t) - sin(x(t))*sin(y(t))*diff(y(t), t)
Обратите внимание, что поскольку (t), x (t) и y (t) просто определяются как функции от «t», мы застряли со своей «символической» производной (я не знаю термин для этого извините) ... т.е. diff (a (t)), например.
Надеюсь, это то, что вы были после!
Какую версию Matlab вы используете? Я получаю эту ошибку '??? Неопределенная функция или метод 'symfun' для входных аргументов типа 'sym'.' – CroCo
Mhh Я использую R2013a. Можете ли вы использовать что-то вроде syms a x y t h; a (t) = sym ('a (t)'), например? –
У меня нет доступа к символической панели инструментов прямо сейчас; Когда я вернусь домой, я попробую разные варианты. Тогда я обновлю ответ. –
Я понятия не имею, почему это сообщение было приостановлено. Я знаю «diff» для символической производной, но не о проблеме, о которой я говорил. Проблема в том, что некоторые переменные зависят от времени, поэтому нелегко решить, как его решить. Я прочитал документацию Matlab, но в этом вопросе нет примера. – CroCo