MATLAB 求导

diff()函数

求导符号表达式或函数。


语法


diff(F)
diff(F,var)
diff(F,n)
diff(F,var,n)
diff(F,var1,...,varN)

描述

表达式描述
diff(F)对由symvar(F,1)决定的变量对F进行求导。
diff(F,var) 对F相对于变量var进行求导
diff(F,n)计算F对由symvar确定的变量的第n阶导数。
diff(F,var,n)计算F对变量var的n阶导数。
diff(F,var1,…,varN)对F相对于变量var1,…,varN进行求导

方程求导

求sin(x^2)的导数:


syms f(x)
f(x) = sin(x^2);
df = diff(f,x)
% 结果
df(x) =
2*x*cos(x^2)

继续: 求x = 2处的导数值。将值转换为double(双精度)


df2 = df(2)
df2 = 4*cos(4)

double(df2)
ans =
   -2.6146

对特定变量求导

求该表达式的一阶导数:


syms x t
diff(sin(x*t^2))
% 结果
ans =
t^2*cos(t^2*x)

因为没有指定求导变量,所以diff使用由symvar定义的默认变量。对于这个表达式,默认变量为x:


symvar(sin(x*t^2),1)
% 结果
symvar(sin(x*t^2),1)

现在,求这个表达式对变量t的导数:


diff(sin(x*t^2),t)
% 结果
ans =
2*t*x*cos(t^2*x)

单变量(一元)表达式的高阶导数

求该表达式的4、5、6阶导数:


syms t
d4 = diff(t^6,4)
d5 = diff(t^6,5)
d6 = diff(t^6,6)
% 结果
d4 =
360*t^2
 
d5 =
720*t
 
d6 =
720

多元表达式关于特定变量的高阶导数

求该表达式对变量y的二阶导数:


syms x y
diff(x*cos(x*y), y, 2)
% 结果
syms x y
diff(x*cos(x*y), y, 2)

对于默认变量的多元表达式的高阶导数

计算表达式x*y的二阶导数。如果你没有指定求导的变量,那么diff使用由symvar指定的默认变量。对于这个表达式,symvar(x*y,1)返回x,因此,diff计算的是x*y对x的二阶导数


syms x y
diff(x*y, 2)
% 结果
ans =
0

如果使用嵌套的diff函数,并且没有指定求导变量,那么diff将为每个调用确定求导变量。例如,通过两次调用diff函数来对表达式x*y求导:


diff(diff(x*y))
% 结果
ans =
1

第一个调用中,对x*y对x求导,并返回y。在第二次调用中,diff对y进行求导,并返回1

因此,diff(x*y, 2)等价于diff(x*y, x, x)diff(diff(x*y))等价于diff(x*y, x, y)


混合求导

对这个表达式的变量x和y求导:


syms x y
diff(x*sin(x*y), x, y)
% 结果
ans =
2*x*cos(x*y) - x^2*y*sin(x*y)

也可以通过提供所有求导变量计算混合高阶导数:


syms x y
diff(x*sin(x*y), x, x, x, y)
% 结果
ans =
x^2*y^3*sin(x*y) - 6*x*y^2*cos(x*y) - 6*y*sin(x*y)





公众号

关注公众号,获取一手资讯

“ MATLAB 求导 ” comments 0

评论/回复

电子邮件地址不会被公开。 必填项已用*标注