主要内容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)*sin(x)gydF4y2Ba

求导数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 =符号(' 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在字母表中更接近x而不是字母gydF4y2Ba年代gydF4y2Ba是多少。要确定MATLAB相对微分的默认变量,请使用gydF4y2BasymvargydF4y2Ba:gydF4y2Ba

symvar (f, 1)gydF4y2Ba
ans = tgydF4y2Ba

求二阶导数gydF4y2BafgydF4y2Ba关于gydF4y2BatgydF4y2Ba:gydF4y2Ba

差异(f t 2)gydF4y2Ba

这个命令返回gydF4y2Ba

ans = s ^ 2 * 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 = 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(我)θ* 1 * 1gydF4y2Ba

为了微分第一类贝塞尔函数,gydF4y2Babesselj(ν,z)gydF4y2Ba关于gydF4y2BazgydF4y2Ba、类型gydF4y2Ba

Syms 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

[-sin(A *x), cos(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

为了计算雅可比矩阵,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

Syms r l f x = r*cos(l)*cos(f);y = r * cos (l) * sin (f);z = r * sin (l);J =雅可比矩阵([x;y;[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 =简化(依据(J))gydF4y2Ba

返回gydF4y2Ba

detJ = - r ^ 2 * cos(左)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