【数模学习】Matlab 符号微积分 计算微分、雅可比矩阵、不定积分与定积分、求解微分方程 - Tob__yuhong

【数模学习】Matlab 符号微积分 计算微分、雅可比矩阵、不定积分与定积分、求解微分方程

1.计算微分

函数diff可以用来计算符号表达式的微分,其调用格式如下:

df=diff(f,n);

参数说明:df是微分运算的结果。f是输入的表达式,n是求导的次数,其默认值是1.

举例:

>>g = diff(sym(sin(x)),1);

g =

cos(x)

2.计算雅可比矩阵

函数jacobian可以用来计算符号表达式的雅可比矩阵

在Matlab中,jacobian的调用格式如下:

Jf=jacobian(f,v);

参数说明:f是符号表达式,v是由不同变量名组成的向量。当v中只含有一个变量时,jacobian(f,v)和diff(f)是等价的。

举例:调用函数jacobian

>> Jf1=jacobian(sym(\'x*log(1+x)\'),sym(\'x\'));

>> Jf2=jacobian(sym(\'[x+y,x*y]\'),[sym(\'x\'),sym(\'y\')]);

>> Jf1

Jf1 =

log(x + 1) + x/(x + 1)

>> Jf2

Jf2 =

[ 1, 1]

[ y, x]

3.计算不定积分和定积分

函数int可以用来计算定积分与不定积分,该函数调用格式如下:

v=int(S);

v=int(S,var);

v=int(S,a,b);

v=int(S,var,a,b);

参数说明:v是返回的结果,S是被积函数,可以使一个向量或者矩阵,var是积分表达式中的积分变量。a和b用于指定积分的积分度量。a和b用于指定积分的上下界。当var默认的时候,函数int将默认对x进行积分。

举例:调用函数int

>> syms x y a;

>> v1=int([sin(x),x*exp(x)])

v1 =

[ -cos(x), exp(x)*(x - 1)]

>> v12=int(y*sin(x*y),y);

>> v12

v12 =

(sin(x*y) - x*y*cos(x*y))/x^2

>> v3=int([sin(x)/x,x*exp(-x^2)],0,inf);

>> v3

v3 =

[ pi/2, 1/2]

>> v4=int(sin(x*a)/x,x,0,1);

>> v4

v4 =

sinint(a)

4.求解微分方程

函数dsolve直接的用法是用来求解微分方程,可以计算出被积函数的原函数,再代入积分限进行计算,就可以得到积分结果了。

相关程序如下:

>> F=dsolve(\'Df=sin(t)*cos(t)\');

>> v=subs(F,2)-subs(F,1); %subs通用置换指令

>> v

v =

sin(2)^2/2 - sin(1)^2/2

>> double(v)

ans =

0.059374196079117

5.计算极限

函数limit可以用来计算不同类型表达式的极限,其调用格式为:

v=limit(f);

v=limit(f,a);

v=limit(f,x,a);

v=limit(f,x,a,\'right\');

v=limit(f,x,a,\'left\');

参数说明:v是返回的极限值,f是符号表达式,它可以是单个表达式,也可以是由多个表达式组成的向量或者矩阵,x指定符号表达式中的x为变量,a是用于指定x->a的极限值,‘right’和‘left’分别用于指定表达式的右极限和左极限。

举例:调用函数limit计算极限

syms x a t;

v1=limit((sin(x)/x)); %计算表达式在x趋向于0时的极限

v2=limit((x-1)/(x^2-1),1); %计算表达式在x趋向于1时的极限

v3=limit((1+2*x/t)^(3*t),t,inf); %计算表达式在t趋向于无穷大(inf)时的极限

v4=limit(1/x,x,0,\'right\'); %计算表达式在x趋向于0时的右极限

v5=limit(1/x,x,0,\'left\'); %计算表达式在x趋向于0时的左极限

输出结果为:

v1 = 1

>> v2

v2 =

1/2

>> v3

v3 =

exp(6*x)

>> v4

v4 =

Inf

>> v5

v5 =

-Inf

说明:输入表达式还可以是向量或者矩阵。

版权声明:本文为博主原创文章,未经博主允许不得转载。