2014-11-12 4 views
3

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

f(t) = 4*sin(a(t)) + x(t)*y(t) + h + cos(y(t))*sin(x(t)) 

Как бы вычислить ее производную по времени?

+1

Я понятия не имею, почему это сообщение было приостановлено. Я знаю «diff» для символической производной, но не о проблеме, о которой я говорил. Проблема в том, что некоторые переменные зависят от времени, поэтому нелегко решить, как его решить. Я прочитал документацию Matlab, но в этом вопросе нет примера. – CroCo

ответ

6

Вы должны объявить переменные и функции внутри него как символический, а затем использовать диф:

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)), например.

Надеюсь, это то, что вы были после!

+0

Какую версию Matlab вы используете? Я получаю эту ошибку '??? Неопределенная функция или метод 'symfun' для входных аргументов типа 'sym'.' – CroCo

+0

Mhh Я использую R2013a. Можете ли вы использовать что-то вроде syms a x y t h; a (t) = sym ('a (t)'), например? –

+0

У меня нет доступа к символической панели инструментов прямо сейчас; Когда я вернусь домой, я попробую разные варианты. Тогда я обновлю ответ. –