分化gydF4y2Ba
为了说明如何使用Symbolic Math Toolbox™软件求导,首先创建一个符号表达式:gydF4y2Ba
Syms x f = sin(5*x);gydF4y2Ba
命令gydF4y2Ba
差异(f)gydF4y2Ba
区别gydF4y2BafgydF4y2Ba
关于gydF4y2BaxgydF4y2Ba
:gydF4y2Ba
Ans = 5*cos(5*x)gydF4y2Ba
作为另一个例子,让gydF4y2Ba
G = exp(x)*cos(x);gydF4y2Ba
在哪里gydF4y2Baexp (x)gydF4y2Ba
表示gydF4y2BaegydF4y2Ba
xgydF4y2Ba,和微分gydF4y2BaggydF4y2Ba
:gydF4y2Ba
Y = diff(g)gydF4y2Ba
Y = exp(x)*cos(x) - exp(x)* sinxgydF4y2Ba
求的导数gydF4y2BaggydF4y2Ba
对于给定的值gydF4y2BaxgydF4y2Ba
,替代gydF4y2BaxgydF4y2Ba
对于使用的值gydF4y2Ba潜艇gydF4y2Ba
并返回一个使用的数值gydF4y2BavpagydF4y2Ba
.求导数gydF4y2BaggydF4y2Ba
在gydF4y2BaX = 2gydF4y2Ba
.gydF4y2Ba
vpa(潜艇(y、x, 2))gydF4y2Ba
Ans = -9.7937820180676088383807818261614gydF4y2Ba
求的二阶导数gydF4y2BaggydF4y2Ba
,输入gydF4y2Ba
diff (g, 2)gydF4y2Ba
Ans = -2*exp(x)*sin(x)gydF4y2Ba
你可以通过求导两次得到相同的结果:gydF4y2Ba
diff (diff (g))gydF4y2Ba
Ans = -2*exp(x)*sin(x)gydF4y2Ba
本例中使用MATLABgydF4y2Ba®gydF4y2Ba软件会自动简化答案。然而,在某些情况下,MATLAB可能不会简化答案,在这种情况下,您可以使用gydF4y2Ba简化gydF4y2Ba
命令。有关此类简化的示例,请参见gydF4y2Ba更多的例子gydF4y2Ba.gydF4y2Ba
请注意,要对常数求导,必须首先将常数定义为符号表达式。例如,输入gydF4y2Ba
C = sym('5');diff (c)gydF4y2Ba
返回gydF4y2Ba
Ans = 0gydF4y2Ba
如果你输入gydF4y2Ba
diff (5)gydF4y2Ba
MATLAB的回报gydF4y2Ba
Ans = []gydF4y2Ba
因为gydF4y2Ba5gydF4y2Ba
不是象征性的表达。gydF4y2Ba
多变量表达式的导数gydF4y2Ba
若要区分包含多个符号变量的表达式,请指定要对其进行区分的变量。的gydF4y2BadiffgydF4y2Ba
命令然后计算表达式关于该变量的偏导数。例如,给定一个符号表达式gydF4y2Ba
Syms s t f = sin(s*t);gydF4y2Ba
命令gydF4y2Ba
差异(f, t)gydF4y2Ba
计算偏导数gydF4y2Ba .结果是gydF4y2Ba
Ans = s*cos(s*t)gydF4y2Ba
来区分gydF4y2BafgydF4y2Ba
关于变量gydF4y2Ba年代gydF4y2Ba
,输入gydF4y2Ba
差异(f, s)gydF4y2Ba
返回:gydF4y2Ba
Ans = t*cos(s*t)gydF4y2Ba
如果没有指定要微分的变量,MATLAB将选择默认变量。基本上,默认变量是字母表中最接近x的字母。完整的规则集见gydF4y2Ba找到一个默认符号变量gydF4y2Ba.在前面的例子中,gydF4y2Ba差异(f)gydF4y2Ba
对gydF4y2BafgydF4y2Ba
关于gydF4y2BatgydF4y2Ba
因为这封信gydF4y2BatgydF4y2Ba
在字母表中比字母更接近xgydF4y2Ba年代gydF4y2Ba
是多少。要确定MATLAB对其求导的默认变量,使用gydF4y2BasymvargydF4y2Ba
:gydF4y2Ba
symvar (f, 1)gydF4y2Ba
Ans = tgydF4y2Ba
计算的二阶导数gydF4y2BafgydF4y2Ba
关于gydF4y2BatgydF4y2Ba
:gydF4y2Ba
差异(f t 2)gydF4y2Ba
这个命令返回gydF4y2Ba
Ans = -s²*sin(s*t)gydF4y2Ba
请注意,gydF4y2Ba差异(f, 2)gydF4y2Ba
返回相同的答案,因为gydF4y2BatgydF4y2Ba
是默认变量。gydF4y2Ba
更多的例子gydF4y2Ba
为了进一步说明gydF4y2BadiffgydF4y2Ba
命令,定义gydF4y2Ba一个gydF4y2Ba
,gydF4y2BabgydF4y2Ba
,gydF4y2BaxgydF4y2Ba
,gydF4y2BangydF4y2Ba
,gydF4y2BatgydF4y2Ba
,gydF4y2BaθgydF4y2Ba
在MATLAB工作空间中输入gydF4y2Ba
信谊gydF4y2Ba一个gydF4y2BabgydF4y2BaxgydF4y2BangydF4y2BatgydF4y2BaθgydF4y2Ba
下表显示了输入的结果gydF4y2Ba差异(f)gydF4y2Ba
.gydF4y2Ba
fgydF4y2Ba |
差异(f)gydF4y2Ba |
---|---|
符号x n f = x^n;gydF4y2Ba |
差异(f)gydF4y2Ba Ans = n*x^(n - 1)gydF4y2Ba |
Syms a b t f = sin(a*t + b);gydF4y2Ba |
差异(f)gydF4y2Ba Ans = a*cos(b + a*t)gydF4y2Ba |
Syms theta f = exp(i*theta);gydF4y2Ba |
差异(f)gydF4y2Ba Ans = exp(theta*1i)*1igydF4y2Ba |
为了求导第一类贝塞尔函数,gydF4y2Babesselj(ν,z)gydF4y2Ba
,关于gydF4y2BazgydF4y2Ba
、类型gydF4y2Ba
Syms nu z b = besselj(nu,z);Db = diff(b)gydF4y2Ba
它返回gydF4y2Ba
Db = (nu*besselj(nu,z))/z - besselj(nu + 1,z))gydF4y2Ba
的gydF4y2BadiffgydF4y2Ba
函数也可以以符号矩阵作为输入。在这种情况下,微分是逐个元素进行的。考虑下面的例子gydF4y2Ba
信谊一个x = [cos (x *),罪(* x); sin (x *),因为(a * x))gydF4y2Ba
它返回gydF4y2Ba
A = [cos(A *x), sin(A *x)] [-sin(A *x), cos(A *x)]gydF4y2Ba
命令gydF4y2Ba
diff (A)gydF4y2Ba
返回gydF4y2Ba
ans =[——*罪(* x), a * cos (x *)][——* cos (x *),——* sin (x *))gydF4y2Ba
你也可以对一个向量函数进行微分运算。考虑从笛卡尔坐标(gydF4y2BaxgydF4y2Ba,gydF4y2BaygydF4y2Ba,gydF4y2BazgydF4y2Ba)到球坐标gydF4y2Ba 由gydF4y2Ba ,gydF4y2Ba ,gydF4y2Ba .请注意,gydF4y2Ba 对应海拔或纬度gydF4y2Ba 表示方位或经度。gydF4y2Ba
为了计算雅可比矩阵,gydF4y2BaJgydF4y2Ba的变换,使用gydF4y2Ba雅可比矩阵gydF4y2Ba
函数。的数学符号gydF4y2BaJgydF4y2Ba是gydF4y2Ba
出于工具箱语法的目的,请使用gydF4y2BalgydF4y2Ba
为gydF4y2Ba
而且gydF4y2BafgydF4y2Ba
为gydF4y2Ba
.的命令gydF4y2Ba
符号r l f x = r*cos(l)*cos(f);Y = r*cos(l)* sinf;Z = r*sin(l);J =雅可比矩阵([x;y;Z, [r l f])gydF4y2Ba
返回雅可比矩阵gydF4y2Ba
J = [cos (f) * cos (l) - r * cos (f) * sin (l) - r * cos (l) * sin (f)] [cos (l) * sin (f) - r * sin (f) *罪(l), r * cos (f) * cos (l)][罪(l), r * cos (l), 0]gydF4y2Ba
命令gydF4y2Ba
detJ = simplify(det(J))gydF4y2Ba
返回gydF4y2Ba
detJ = -r^2*cos(l)gydF4y2Ba
的论点gydF4y2Ba雅可比矩阵gydF4y2Ba
函数可以是列向量或行向量。此外,由于雅可比矩阵的行列式是一个相当复杂的三角表达式,你可以使用gydF4y2Ba简化gydF4y2Ba
作三角函数的替换和化简(化简)gydF4y2Ba
总结表格gydF4y2BadiffgydF4y2Ba
而且gydF4y2Ba雅可比矩阵gydF4y2Ba
遵循。gydF4y2Ba
数学运算符gydF4y2Ba |
MATLAB命令gydF4y2Ba |
---|---|
|
|
|
|
|
|
|
|
另请参阅gydF4y2Ba
diffgydF4y2Ba
|gydF4y2BaintgydF4y2Ba
|gydF4y2Ba雅可比矩阵gydF4y2Ba