转载自:https://www.cnblogs.com/yuehq/p/6501547.html
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 = 2tcos(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)
2tcos(t^2) %与先知道x表达式的结果一致