第06章MATLAB符号计算.docx

上传人:b****6 文档编号:7712199 上传时间:2023-01-25 格式:DOCX 页数:12 大小:43.57KB
下载 相关 举报
第06章MATLAB符号计算.docx_第1页
第1页 / 共12页
第06章MATLAB符号计算.docx_第2页
第2页 / 共12页
第06章MATLAB符号计算.docx_第3页
第3页 / 共12页
第06章MATLAB符号计算.docx_第4页
第4页 / 共12页
第06章MATLAB符号计算.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

第06章MATLAB符号计算.docx

《第06章MATLAB符号计算.docx》由会员分享,可在线阅读,更多相关《第06章MATLAB符号计算.docx(12页珍藏版)》请在冰豆网上搜索。

第06章MATLAB符号计算.docx

第06章MATLAB符号计算

第六章MATLAB符号计算

MATLAB具有符号数学工具箱,可以对符号表达式进行运算和处理。

基本运算包括复合、化简、微分、积分,以及求解代数方程式、微分方程式等。

另外还可以求解线性代数题,如求解符号矩阵的逆、行列式的精确结果,找出符号矩阵的特征值。

符号运算不产生由数值运算产生的运算误差,可以在运算最后数字代入结果,避免了由于中间运算而产生的累积误差,因而能够得到指定精度的结果。

6.1、符号计算基础

1、建立符号变量和符号常数

MATLAB中提供了两个建立符号对象的函数或命令:

sym和syms。

(1)sym函数sym函数用来建立单个符号量,其调用格式为

符号变量名=sym(符号字符串)

其中:

符号字符串可以是常量、变量、函数或表达式。

例如,a=sym(‘a’)建立符号变量a,用户可以在表达式中使用变量a进行各种运算。

用sym函数还可以定义符号常量,使用符号常量进行运算所得的结果是精确的数学bda式,而数值计算则是将结果近似为一个有限小数。

⑵syms函数syms函数的一般调用格式为

symsvar1var2…varn

其中,var1,var2,…,varn是定义为符号变量的变量名。

用这种格式定义符号变量时,不要在变量名上加字符分界符(‘),变量间用空格而不要用逗号分隔。

symsxbeta等同于

x=sym(‘x’)

beta=sym(‘beta’)

2、建立符号表达式

(1)用sym函数建立符号表达式

命令语旬

y1=sym(‘1/sqrt(2*x)’)

返回

y1=

1/sqrt(2*x)

命令语旬

M=sym(‘[a,b;c,d]’)

返回

M=

[a,b]

[c,d]

⑵使用已经定义的符号变量组成符号表达式

命令语旬

symsxy

v=3*x^2-5*y+2*x*y+6

返回

v=

3*x^2-5*y+2*x*y+6

3.findsym命令和默认符号变量

findsym命令可以用来找出存在于符号表达式中的符号变量,其格式为

findsym(s)或findsym(s,n)

findsym(s)命令显示存在于表达式s内的所有符号变量;findsym(s,n)命令以约定的顺显示存在于表达式s内的n个符号变量。

MATLAB将按照以下默认的顺序显示表达式s内n个符号变量:

从x开始,按照字母表上变量与x的接近程度排序,如果两个变量与x的距离相同,则按字母顺序,在x后面的变量优先。

例如:

symsxhwydt

s=h*x^2+d*y^2+t*w^2

findsym(s)

返回

ans=

d,h,t,w,x,y

命令

findsym(s,5)

返回

ans=

x,y,w,t,h

4.合并同幂次项、展开和因式分解运算

(1)collect命令合并表达式中同幂次的项,结果按照幂次递减的顺序排列,调用的格式为:

collect(s)

这里s是表达式,按MATLAB默认变量的顺序进行合并。

例如:

symsxy

s=(2*x^2+y^2)*(x+y^2+3);

t=co11ect(s)

返回

t=

2*x^3+(2*y^2+6)*x^2+y^2*x+y^2*(y^2+3)

按MATLAB默认变量的顺序,x最优先,因此这里对x进行合并。

如果变量x用变量u代替,执行的结果就不同了:

symsuy

s=(2*u^2+y^2)*(u+y^2+3);

t=collect(s)

t=

y^4+(2*u^2+u+3)*y^2+2*u^2*(u+3)

这是因为按MATLAB默认变量的顺序,y比u距x近,y比u优先,因此这里对进行合并。

如果要指定合并的变量,用下面的格式:

collect(s,var)

它将合并表达式中由var指定的变量的同幂次的项。

例如:

symsxy;

s=(2*x^2+y^2)*(x+y^2+3);

u=collect(s,y)

返回

u=

y^4+(2*x^2+x+3)*y^2+2*x^2*(x+3)

(2)因式分解与展开

MATLAB中符号表达式的因式分解与展开的函数如下:

factor(s),对s分解因式。

expand(s),对s进行展开。

其中,s是符号表达式或符号矩阵。

例如命令语句

f=factor(123)

返回

f=

341

命令语句

expand((x-2)*(x-4))

返回

x^2-6*x+8

命令语句

expand(cos(x+y))

返回

cos(x)*cos(y)-sin(x)*sin(y)

命令语句

expand(exp((a+b)^2))

返回

expand(a^2)*expand(a*b)^2*exp(b^/2)

命令语句

symst

expand([sin(2*t),cos(2*t)])

返回

[2*sin(t)*cos(t),2*cos(t)^2-1]

5.表达式化简

MATLAB提供的对符号表达式化简的函数如下:

simp1ify(s),应用函数规则对s进行化简。

simp1e(s),调用MATLAB的其他函数对表达式进行综合化简。

例如命令语句

simp1ify(sin(x)^2+cos(x)^2)

返回

1

命令语句

simplify(exp(c*log(sqrt(a+b))))

返回

(a+b)^(c/2)

命令语句

S=[(x^2+5*x+6)/(x+2),sqrt(16)]

R=simp1ify(S)

返回

R=[x+3,4]

6.符号表达式与数值表达式之间的转换

利用函数sym可以将数值表达式变换成它的符号表达式。

例如命令语句

sym(1.5)

返回

ans=

3/2

命令语句

sym(3.14)

返回

ans=

157/50

函数numeric或eva1可以将符号表达式变换成数值表达式。

例如语句命令

numeric(‘1+2^2’)

返回

ans=

5

命令语句

f=sym(‘1+x^2’);

x=sym(‘2’);

p=eval(f)

返回

p=

5

6.2、符号函数的极限、导数和积分

1、符号函数的极限

MATLAB中求函数极限的函数是1imit,调用格式如下:

1imit(f,var,a),计算当变量var趋近于常数a时,函数f的极限值。

1imit(f,var,a,‘right’),计算变量var从右边趋近于a时,符号函数f的极限值。

1imit(f,var,a,‘left’),计算变量var从左边趋近于a时,符号函数f的极限值。

例如:

命令语句

symsxath;

1imit(sin(x)/x,x,0)

返回

ans=

1

命令语句

1imit((sin(x+h)-sin(x))/h,h,0)

返回

ans=

cos(x)

命令语句

1imit((sin(x+h)-sin(x))/h,x,0)

返回

ans=

0

2、符号函数的导数

MATLAB中求导的函数为

diff(f,var,n)

表示求函数函数f对变量var的n阶导数。

当n=1时可以省略。

若不指定求到变量,则由默认规则确定。

例:

求下列函数的导数。

(1)

,求y’,y”,y”’。

(2)

,求

求解程序及结果如下:

命令语句

symsabtxyz;

f1=x*cos(x);

d1=diff(f1,x)%求x的1阶导数

d2=diff(f1,x,2)%求x的2阶导数

d1=diff(f1,x,3)%求x的3阶导数

返回

d1=

cos(x)-x*sin(x)

d2=

-2*sin(x)-x*cos(x)

d3=

-3cos(x)+x*sin(x)

命令语句

f2=x*exp(y)/y^2;

zx=diff(f2,x)

zy=diff(f2,y)

返回

zx=

exp(y)/y^2

zy=

x*exp(y)/y^2-2*x*exp(y)/y^3

3.符号函数的积分

在MATLAB中,求积分的函数是int,其调用格式如下:

int(f,v),以v为自变量,对被积函数符号表达式f求不定积分。

int(f,v,a,b),求被积函数f在区间[a、b]上的定积分。

a和b可以是两个具体的数,也可以是一个符号表达式。

例如命令语句

symx

int(-2*x/(1+x^2)^2,x)

返回

ans=

x*atan(x)

命令语句

int(x*log(1+x),x,0,1)

返回

ans=

1/4

例:

求椭球

的体积。

用平面

)去截取上述椭球,其相交线是一个椭圆,该椭圆在xy平面t投影的面积是

椭球的体积

MATLAB程序如下:

symsabcz;

f=pi*a*b*(c^2-z^2)/c^2;

V=int(f,z,-c,c)

程序运行结果如下:

V=

4/3*pi*a*b*c

4.符号方程求解

(1)符号代数方程求解

代数方程是指未涉及微积分运算的方程,相对比较简单,可用函数so1ve求其解,格式如下:

solve(eq,v),求解符号表达式eq表示的代数方程eq=0的解,求解变量为v。

solve(eq1,eq2,…,eqn,v1,v2,…,vn),求解符号表达式eq1、eq2、

eqn组成的代数方程组,求解变量分别v1,v2,…,vn。

若不指定求解变量,则由默认规则确定。

例如命令语句

solve(‘a*x^2+b*x+c’,x)

返回

ans=

[1/2/a*(-b+(b^2-4*a*c)^(1/2))]

[1/2/a*(-b-(b^2-4*a*c)^(1/2))]

命令语句

so1ve(‘a*x^2+b*x+c’,‘b’)

返回

ans=

-(a*x^2+c)/x

命令语句

S=solve(‘x+y=1’,‘x-11*y=5’)

返回

S.y=-1/3,S.x=4/3%构体变量

命令语句

A=so1ve(‘a*u^2+v^2’,‘u-v=1’,‘a^2-5*a+6’)

返回

A=

a:

[4x1sym]

u:

[4x1sym]

v:

[4x1sym]

(2)符号微分方程求解

MATLAB中用大写字母D表示导数。

例如Dy表示y’,D2y表示y”,Dy(0)=5表示y’(0)=5,D3y+D2y+Dy-x+5=0表示微分方程y’”+y”+y’-x+5=0。

求解常微分方程的函数是dso1ve,调用的格式为

dsolve(‘eqn1’,‘cond’,‘var’)

该函数求解微分方程eqn1在初值条件cond下的特解。

参数var描述方程中的变量符号,省略时按默认原则处理;若没有给出初值条件cond,则求方程的通解。

dsolve在求微分方程组时的调用格式为:

dsolve(‘eqn1’,‘eqn2’,…,’eqn’,‘cond1’,‘cond2’,…,’condn’,‘var1’,…,‘varN’)

函数求解微分方程组eqn1,…,eqn在初值条件cond1,…,condn的特解,若不给出初值条件,则求方程组的通解,var1,…,varn给出求解变量。

例求下列微分方程的解。

⑴求

的通解;⑵求

的特解,

(3)求

的通解。

MATLAB程序如下:

y=dsolve(‘Dy-(x^2+y^2)/x^2/2’,‘x’)

y=dsolve((Dy-x^2/(1+y^2)’,‘y

(2)=1’)

[x,y]=dsolve(‘Dx=4*x-2*y’,‘Dy=2*x―y’,‘t’)

5.级数

(1)级数求和

级数的求和使用符号表达式求和函数symsum,调用格式如下:

symsum(s,v),s表示一个级数的通项,是一个符号表达式,v是求和变量,从0至v-1。

symsum(s,v,a,b),s表示一个级数的通项,是一个符号表达式,v是求和变量,a和b分别是开始项和结束项。

v省略时使用系统的默认变量。

例如:

求级数之和:

(1)

(2)

MATLAB程序如下:

symsknx

symsum(k^2〉

返回

ans=

1/3*k^3-1/2*k^2+1/6*k

命令

symsum(k^2`0`10)

返回

ans=

385

命令

symsum(sin(k*pi)/k,k,0,n)

返回

ans=

-1/2*sin(k*(n+1))/k+1/2*sin(k)/k/(cos(k)-1)*cos(k*(n+1))-1/2*sin(k)/k/(cos(k)-1)

(2)函数的泰勒级数

MATLAB中提供了将函数展开为幂级数的函数tay1or,其调用格式为

tay1or(f,v,n,a)

将函数f按变量v在v=a处展开为泰勒级数,展开到第n项(即变量v的n-1次幂)为止。

的默认值是0。

例:

求函数

在x=0处的5阶泰勒展开式。

MATLAB程序如下:

x=sym(‘x’);

f2=sqrt(1-2*x+x^3)-(1-3*x+x^2)^(1/3);

taylor(f2,x,5,0)

程序运行结果如下:

ans=

1/6*x^2+x^3+119/72*x^4

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 自然景观

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1