要演示如何使用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)*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
若要对包含多个符号变量的表达式进行微分,请指定要对其进行微分的变量。的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
在字母表中更接近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
为了进一步说明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 ,gydF4y2Ba ,gydF4y2Ba .请注意,gydF4y2Ba 对应于海拔或纬度gydF4y2Ba 表示方位角或经度。gydF4y2Ba
为了计算雅可比矩阵,gydF4y2BaJgydF4y2Ba,使用gydF4y2Ba雅可比矩阵gydF4y2Ba
函数。数学符号gydF4y2BaJgydF4y2Ba是gydF4y2Ba
出于工具箱语法的目的,请使用gydF4y2BalgydF4y2Ba
为gydF4y2Ba
和gydF4y2BafgydF4y2Ba
为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 |
---|---|
|
|
|
|
|
|
|
|