您的位置:首页 > 编程语言 > MATLAB

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

2017-03-04 15:35 423 查看
我们先来看一个例子:


\(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表达式的结果一致
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: