我們先來看一個例子:
\(y=sin(x)\),\(y\)是x的函數,同時\(x\)是關於t的函數,即為\(x(t)\),很多時候\(x(t)\)的具體表達式是未知的,這時該如何用matlab符號求\(y\)關於\(t\)的導數呢?
先來看\(x(t)\)表達式已知時matlab代碼:
syms t
x = t^2 %例如x=t*t
y = sin(x)
df = diff(y,t)
>> df = 2*t*cos(t^2) %求導結果
從上面可以看出函數表達式已知時,可以很方便做符號微分。
接下來看函數未知時的情況:
x = sym('x(t)') %定義x是關於t的一個表達式
y = sin(x)
df = diff(y,t)
>> df = cos(x(t))*diff(x(t), t) %驗證與手動求導結果一致
有了上面的結果之后,突然有一天\(x(t)\)的具體表達式有了該怎么辦呢?這時subs
函數就可以出場了,例如:
x = sym('x(t)') %定義x是關於t的一個表達式
y = sin(x)
df = diff(y,t)
df = subs(df,x,t^2)
>> 2*t*cos(t^2) %與先知道x表達式的結果一致