主要内容gydF4y2Ba

分化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表示gydF4y2BaegydF4y2BaxgydF4y2Ba,和微分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 fgydF4y2Ba /gydF4y2Ba ∂gydF4y2Ba tgydF4y2Ba .结果是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 rgydF4y2Ba ,gydF4y2Ba λgydF4y2Ba ,gydF4y2Ba φgydF4y2Ba )gydF4y2Ba 由gydF4y2Ba xgydF4y2Ba =gydF4y2Ba rgydF4y2Ba 因为gydF4y2Ba λgydF4y2Ba 因为gydF4y2Ba φgydF4y2Ba ,gydF4y2Ba ygydF4y2Ba =gydF4y2Ba rgydF4y2Ba 因为gydF4y2Ba λgydF4y2Ba 罪gydF4y2Ba ϕgydF4y2Ba ,gydF4y2Ba zgydF4y2Ba =gydF4y2Ba rgydF4y2Ba 罪gydF4y2Ba λgydF4y2Ba .请注意,gydF4y2Ba λgydF4y2Ba 对应海拔或纬度gydF4y2Ba φgydF4y2Ba 表示方位或经度。gydF4y2Ba

三维空间中的点可以用笛卡尔坐标(x,y,z)或球坐标(r,lambda,)表示。gydF4y2Ba

为了计算雅可比矩阵,gydF4y2BaJgydF4y2Ba的变换,使用gydF4y2Ba雅可比矩阵gydF4y2Ba函数。的数学符号gydF4y2BaJgydF4y2Ba是gydF4y2Ba

JgydF4y2Ba =gydF4y2Ba ∂gydF4y2Ba (gydF4y2Ba xgydF4y2Ba ,gydF4y2Ba ygydF4y2Ba ,gydF4y2Ba zgydF4y2Ba )gydF4y2Ba ∂gydF4y2Ba (gydF4y2Ba rgydF4y2Ba ,gydF4y2Ba λgydF4y2Ba ,gydF4y2Ba φgydF4y2Ba )gydF4y2Ba .gydF4y2Ba

出于工具箱语法的目的,请使用gydF4y2BalgydF4y2Ba为gydF4y2Ba λgydF4y2Ba 而且gydF4y2BafgydF4y2Ba为gydF4y2Ba φ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

dgydF4y2Ba fgydF4y2Ba dgydF4y2Ba xgydF4y2Ba

差异(f)gydF4y2Ba或gydF4y2Ba差异(f (x)gydF4y2Ba

dgydF4y2Ba fgydF4y2Ba dgydF4y2Ba 一个gydF4y2Ba

差异(f)gydF4y2Ba

dgydF4y2Ba 2gydF4y2Ba fgydF4y2Ba dgydF4y2Ba bgydF4y2Ba 2gydF4y2Ba

差异(f, b, 2)gydF4y2Ba

JgydF4y2Ba =gydF4y2Ba ∂gydF4y2Ba (gydF4y2Ba rgydF4y2Ba ,gydF4y2Ba tgydF4y2Ba )gydF4y2Ba ∂gydF4y2Ba (gydF4y2Ba ugydF4y2Ba ,gydF4y2Ba vgydF4y2Ba )gydF4y2Ba

J =雅可比矩阵([r;t]、[u;v])gydF4y2Ba

另请参阅gydF4y2Ba

|gydF4y2Ba|gydF4y2Ba

外部网站gydF4y2Ba

Baidu
map