,原创matlab符号微分含有未知函数时的导数计算

我们先来看一个例子:

\(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表达式的结果一致

,原创matlab符号微分含有未知函数时的导数计算