昆明理工大学上机安排3符号计算Word格式.docx

上传人:b****1 文档编号:3104463 上传时间:2023-05-01 格式:DOCX 页数:21 大小:78.03KB
下载 相关 举报
昆明理工大学上机安排3符号计算Word格式.docx_第1页
第1页 / 共21页
昆明理工大学上机安排3符号计算Word格式.docx_第2页
第2页 / 共21页
昆明理工大学上机安排3符号计算Word格式.docx_第3页
第3页 / 共21页
昆明理工大学上机安排3符号计算Word格式.docx_第4页
第4页 / 共21页
昆明理工大学上机安排3符号计算Word格式.docx_第5页
第5页 / 共21页
昆明理工大学上机安排3符号计算Word格式.docx_第6页
第6页 / 共21页
昆明理工大学上机安排3符号计算Word格式.docx_第7页
第7页 / 共21页
昆明理工大学上机安排3符号计算Word格式.docx_第8页
第8页 / 共21页
昆明理工大学上机安排3符号计算Word格式.docx_第9页
第9页 / 共21页
昆明理工大学上机安排3符号计算Word格式.docx_第10页
第10页 / 共21页
昆明理工大学上机安排3符号计算Word格式.docx_第11页
第11页 / 共21页
昆明理工大学上机安排3符号计算Word格式.docx_第12页
第12页 / 共21页
昆明理工大学上机安排3符号计算Word格式.docx_第13页
第13页 / 共21页
昆明理工大学上机安排3符号计算Word格式.docx_第14页
第14页 / 共21页
昆明理工大学上机安排3符号计算Word格式.docx_第15页
第15页 / 共21页
昆明理工大学上机安排3符号计算Word格式.docx_第16页
第16页 / 共21页
昆明理工大学上机安排3符号计算Word格式.docx_第17页
第17页 / 共21页
昆明理工大学上机安排3符号计算Word格式.docx_第18页
第18页 / 共21页
昆明理工大学上机安排3符号计算Word格式.docx_第19页
第19页 / 共21页
昆明理工大学上机安排3符号计算Word格式.docx_第20页
第20页 / 共21页
亲,该文档总共21页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

昆明理工大学上机安排3符号计算Word格式.docx

《昆明理工大学上机安排3符号计算Word格式.docx》由会员分享,可在线阅读,更多相关《昆明理工大学上机安排3符号计算Word格式.docx(21页珍藏版)》请在冰点文库上搜索。

昆明理工大学上机安排3符号计算Word格式.docx

最接近的有理表示,MATLAB的缺省表示方法

2.对于字符串变量名argv,flagv可以取以下“限定”项:

positive'

“正实数”符号变量

real'

“实数”符号变量

unreal'

“非实数”符号变量

3.syms是sym函数的简化书写方式,各符号对象之间只能用空格分开。

2符号常量

用sym函数可以定义符号常量对象,包括符号标量对象和符号常量数组对象,定义符号常量对象的同时也可以指定数值常量的表示方法。

例符号常量的定义

>

a=[1/3,sqrt(5),pi+sqrt

(2)];

%定义数值数组

s1=sym([1/3,sqrt(5),pi+sqrt

(2)],'

);

%用十进制方式表示符号常量

s2=sym([1/3,sqrt(5),pi+sqrt

(2)]);

%用最接近的有理方式表示符号常量

s3=sym('

[1/3,sqrt(5),pi+sqrt

(2)]'

%绝对准确的符号数值表示,输入为字符串

3符号变量与符号表达式

1.定义符号变量和符号表达式

例符号变量和符号表达式的定义

x=sym('

x'

'

);

%定义实数符号变量x

symyreal;

%定义实数符号变量y

z=x+i*y;

%定义符号表达式对象z

conj(z)%符号变量求共轭复转置

f=z*conj(z);

%符号表达式对象

f=simple(f)%符号表达式对象化简

f=

x^2+y^2

例符号变量与符号矩阵

symsabc;

%定义符号变量a,b,c

A=[a,b,c;

b,c,a;

c,a,b];

%定义符号矩阵A

sum(A(:

1));

%求矩阵A第一列的元素的和

sum(A(1,:

))==sum(A(:

2))%符号对象的关系运算

det(A);

%矩阵求行列式

symsalphabeta;

%定义符号变量alpha和beta

A(1,3)=beta;

%矩阵元素赋值

A=subs(A,a,alpha)%符号表达式的替换操作,矩阵A中的a用alpha代替

以上例子可以看出:

元素是符号对象的矩阵叫做符号矩阵;

符号表达式是由以下部分组成的符号对象:

a.符号常量;

b.符号变量;

c.符号运算符;

d.专用函数。

4符号表达式中自变量的确定

在数学表达式或者数学函数中,一般都含有自变量。

为了便于进行数学运算,通常要显示指定表达式中的自变量,如果不指定自变量,MATLAB会根据上下文关系,识别表达式中默认的自变量(独立自由的符号变量)。

识别表达式中自变量的基本原则是:

按照字母表中靠近小写字母x的顺序识别,最靠近字母x的变量被第一个识别为自变量。

MATLAB还提供了自变量识别函数findsym。

findsym(exp)识别表达式exp中所有的自由符号变量

findsym(exp,n)识别表达式exp中最靠近x的n个独立自由变量

1.表达式可以是符号矩阵,此时变量识别是对整个矩阵进行的。

2.函数识别的是“独立的”“自由的”符号变量,符号常量或者非独立的符号变量无法被识别。

3.识别次序是按照靠近x的远近进行的,区分大小写,总认为大写字母距离x的距离大于所有小写字母。

例符号表达式中自变量的识别

symsabxXY;

%定义符号变量

k=sym(2.5);

z=sym('

c*sqrt(alpha)+y*sin(beta)'

%定义符号表达式对象(变量)z

exp=a*z*X+k*Y+b^x%定义符号表达式变量exp

exp=

a*(c*alpha^(1/2)+y*sin(beta))*X+5/2*Y+b^x

findsym(exp)%自动识别所有自由独立变量,k为常量,z为非独立

findsym(exp,3)%识别exp中前3个靠近x的独立自由变量

5符号数学函数

在MATLAB中,可以定义表示数学函数的符号对象,既能建立具有详细运算关系的函数,又能建立抽象数学函数。

定义符号数学函数有2种方法:

1.用符号表达式

2.用函数M文件(在函数M文件中用符号变量作为输入变量)

例用符号表达式定义符号数学函数

symsxyz%定义函数自变量

r=sqrt(x^2+y^2+z^2);

%定义函数r

t=atan(y/x);

%定义函数t

f=sin(x*y)/(x*y);

%定义函数f

例用函数M文件来定义符号数学函数,下列代码定义了函数sin(x)=sinc(x)/x。

创建M函数文件如下:

functionz=sinc(x)

%SINC符号函数

%sin(x)/x数学计算公式

%接受符号变量作为输入变量

ifisequal(x,sym(0))%如果自变量值为符号0,则函数值为1

z=1;

else

z=sin(x)/x;

end

例建立抽象的符号数学函数(可用help命令查看subs、limit函数的用法)

f=sym('

f(x)'

)%建立抽象函数f(x)

symsxh;

df=(subs(f,x,x+h)-f)/h%建立抽象函数df,表示f(x)的导数表达式

df=

(f(x+h)-f(x))/h

g=subs(df,'

sin'

)%建立sin(x)的导数函数的定义

g=

((sin)(x+h)-(sin)(x))/h

limit(g,h,0)%根据导数定义,求sin(x)的导数

ans=

cos(x)

二符号计算

符号计算有:

代数运算、函数运算、微积分运算、极限运算、级数求和、方程(组)求解等。

A代数运算

符号对象的基本代数运算

符号对象的基本代数运算和普通数值变量一样,可以使用算术运算符、关系运算符(仅能用==和!

=),其运算符的定义和数值运算相同。

例符号矩阵的基本代数运算,查看结果

symst;

G=[cos(t),sin(t);

-sin(t),cos(t)];

A=G*G;

%符号矩阵的乘法

A=simple(A);

%化简为最简表达式

I=G'

.*G;

%符号数组乘法

I=simple(I);

F=[cos(t),-sin(t);

sin(t),cos(t)];

(F+G)/2;

%符号矩阵加法和符号矩阵与标量的除法

B函数运算

数值计算使用的函数基本上也可以用于符号计算,包括三角函数(atan2除外)、指数函数、对数函数(log2、log10除外)、复数函数(angle除外)、线性代数函数和矩阵函数。

例符号矩阵的函数运算,运行下面语句查看结果(去掉分号)

H=hilb(3);

%生成3×

3的希尔伯特数值矩阵

H=sym(H);

%将数值矩阵转为符号常数矩阵

inv(H);

%符号矩阵求逆

det(H)%符号矩阵求行列式的值

symss

H(1,1)=s;

%将符号元素赋值为符号变量s,使矩阵变为非奇异矩阵

Z=det(H)%带有符号变量的符号矩阵求行列式的值

sol=solve(Z)%求行列式的根

H=subs(H,s,sol);

%将矩阵行列式的根代入符号矩阵,使矩阵变为奇异矩阵

det(H);

%奇异矩阵的行列式值

%奇异矩阵求逆

eig(H);

%符号矩阵的特征值

C符号表达式分解、展开与化简

MATLAB提供了符号表达式的因式分解、展开和化简函数。

collect(expr,v)合并符号表达式expr中符号对象v的同类项系数

expand(expr)对表达式expr进行多项式、三角函数、指数对数等函数展开

factor(expr)对符号表达式expr做因式分解

horner(expr)把多项式expr分解为嵌套形式

[n,d]=numden(expr)提取表达式最小分母公因子d和相应的分子多项式n

simplify(expr)用多种恒定变换对表达式expr进行综合化简

simple(expr)把expr化简为最简表达式

【说明】上述表达式expr可以是符号矩阵,此时函数对符号矩阵的每个元素进行相应操作。

例符号表达式的展开和分解

f=sym('

(x^3-6*x^2+10*x-5)+(x-1)'

%定义原始的符号表达式

fc=collect(f);

%符号表达式合并同类项

ff=factor(f);

%符号表达式因式分解

fh=horner(f);

%符号表达式的嵌套分解

fe=expand(fh);

%符号表达式的展开

factor(1025);

%正整数的质数分解,1025=5×

41

例写出矩阵

各元素的分子多项式和分母多项式

symsx;

A=[1/4,1/(2*x-1)+1/(x+1);

2/(x^2-1),3*x+2];

[n,d]=numden(A);

%提取表达式最小分母公因子d和相应的分子多项式n

pretty(simplify(n./d));

例化简

解:

用simplify进行多次化简也得不到最简结果,用simple化简可以得到最简结果

f=(1+3/x+3/x^2+1/x^3)^(1/3);

sfy1=simplify(f);

sfy2=simplify(sfy1);

sp1=simple(f);

sp2=simple(sp1)

D符号表达式的置换操作

MATLAB提供了子表达式的置换函数。

通常在这几种情况下使用子表达式的置换函数:

第一,符号计算结果中多次出现同一个表达式,为了阅读方便,可以把这个表达式用符号变量来置换;

第二,可以用符号常量对象置换表达式中的自变量,实现表达式求值;

第三,通过置换某些表达式可以生成新的表达式。

1.自动置换函数

[RS,vn]=subexpr(S,vn)用符号变量vn置换S中的子表达式,并重写S为RS。

[RS,vn]=subexpr(S,'

vn'

例对一元三次方程

的符号解进行子表达式的置换。

t=solve('

a*x^3+b*x^2+c*x+d=0'

[r,s]=subexpr(t,'

s'

2.通用置换函数

RS=subs(S,old,new)用new置换S中old,生成RS

【说明】

(1)old是被替换的子表达式,可以是符号变量,也可以是字符串表达式。

(2)new是替换old的值,可以是符号常量、符号变量、符号表达式,也可以是数值。

(3)如果要替换多个子表达式,则old和new为细胞数组。

例通用置换函数。

symsax;

f=a*cos(x)+1;

f1=subs(f,'

cos(x)'

sym('

y'

));

%用符号变量替换

f2=subs(f,{a,x},{3,sym('

pi/4'

)})%用符号常量替换,

f3=subs(f,{a,x},{3,pi/4});

%用双精度数替换

f4=subs(f,{a,x},{0:

3,0:

pi/3:

pi});

%用双精度数组替换

f5=subs(f,x,sym('

exp(-t)'

))%用符号表达式替换

E符号函数的反函数

g=finverse(f,v)求指定自变量为v的函数f(v)的反函数g(v)

g=finverse(f)求函数f对缺省的自变量(由findsym确定)的反函数g

例求

的反函数。

f=(x^2+1)^(1/2);

g=finverse(f);

F符号函数的复合函数

fg=compose(f,g,x,y,z)对f(x)和g(y)求复合函数fg(z)=f(g(y))|y=z

fg=compose(f,g)对f(⋅)和g(⋅)求复合函数fg=(fg(⋅)),自变量由findsym确定

例求复合函数。

symsxyztu;

f=1/(1+x^2);

g=sin(y);

h=x^t;

p=exp(-y/u);

compose(f,g);

compose(f,g,t);

compose(h,g,x,z)

compose(h,g,t,z);

compose(h,p,x,y,z);

compose(h,p,t,u,z)

G符号微分和雅可比矩阵

求导数、高阶导数、偏导数是常见的数学运算,MATLAB提供这方面的符号微分函数。

【调用格式】

df=diff(f,v,n)求

,即求函数f(v)对的n阶导数

R=jacobian(f,v)求多元向量函数f(v)的雅可比矩阵,即

symsatx;

f=[a,t^2;

t*sin(x),log(x)];

dfx=diff(f,x)%矩阵f对x的一阶导数,也可写为diff(f)

df2t=diff(f,t,2);

%矩阵f对t的二阶导数

dfxt=diff(diff(f,x),t)

,求其雅可比矩阵

symsxyz;

f=[x*y*z;

y;

x+z];

v=[x,y,z];

R=jacobian(f,v)

H函数极限

函数的极限是通过导数来定义的,limit函数用于求函数极限。

limit(f,x,a)求

limit(f,x,a,'

right'

)求

left'

例求极限运算。

limit(sin(x)/x,x,0);

limit(1/x,x,0,'

limit((sin(x+h)-sin(x))/h,h,0)%sin(x)导函数的定义

v=[(1+a/x)^x,exp(-x)];

limit(v,x,inf)

I符号积分

int函数用于求定积分、不定积分和多重积分的符号解。

S=int(f,v)求不定积分∫f(v)dv,符号计算结果不带积分常数

S=int(f,v,a,b)求定积分

rsums(f,ra,rb)用Riemann和求符号函数f(x)在[ra,rb]区间上的近似积分

1.当f为矩阵时,将对矩阵的每个元素做积分运算。

2.v缺省时,积分对findsym确认的变量进行。

3.积分上下限a和b可以是任何数值和表达式

4.rsums函数绘制求积分的曲线,根据用户的选择来确定最终的近似积分值

例计算

symsat;

f=[exp(t),t^4;

1,sin(a*t)];

int(f,t)

例求多重积分

V=int(int(int(x^2+y^2+z^2,z,sqrt(x*y),x*y),y,sqrt(x),x^2),x,1,2)

vpa(V)

J符号级数求和

symsum函数实现符号级数的求和运算。

s=symsum(f,v,a,b)求

,a和b为整数,b可以取无穷大

symstkx;

f1=[t,k^2];

f2=x^k/sym('

k!

simple(symsum(f1,t,0,t))

simple(symsum(f2,k,0,inf))

K符号代数方程组的解

代数方程包括线性、非线性和超越方程等,solve函数用于符号代数方程求解。

g=solve('

eq1'

eq2'

...,'

eqn'

var1'

var2'

varn'

g=solve(exp1,exp2,...,expn,var1,var2,...,varn)

1.'

是字符串表达式的方程,或者是字符串表达式,如果它们是不含等号的字符串表达式,则相当于方程'

eqi=0'

2.'

是用字符串表示的方程中的变量名

3.exp1,exp2,...,expn只能是符号表达式,不能是带有等号的表达式方程。

4.var1,var2,...,varn只能是符号变量。

5.返回值g是一个结构体数据,方程组的解用g.var1,g.var2,...,g.varn表示。

6.在无法求得解析解的时候,给出数值解。

例方程组

,分别求其关于y,z和关于u,v,w的解

s1=solve('

u*y+v*z^2+w=0'

'

y+z+v=0'

z'

%方程组关于的解,从结果来看方程有2组解:

s1=

y:

[2x1sym]

z:

y=s1.y;

z=s1.z;

%方程组关于u,v,w的解,2个方程3个变量,方程有无穷多组解,其中w为自由变量,

s2=solve('

u'

v'

w'

u=s2.u;

v=s2.v;

w=s2.w;

L符号微分方程的解

g=dsolve('

cond1'

cond2'

...,'

condn'

是微分方程,只能用字符串形式。

微分方程是函数必须的输入变量。

是初始条件,也只能用字符串形式。

3.'

定义了微分方程的独立变量名(微分方程解中的自变量名),只能用字符串形式。

默认的独立变量名为t。

4.微分方程字符串中,Dny表示y的n阶导数,Dy表示y的一阶导数。

5.返回值g是一个结构体变量,要引用其成员才能得到方程的解。

例求微分方程组

的解。

s=dsolve('

Dx=y,Dy=-x'

x=s.x

x=

-C1*cos(t)+C2*sin(t)

y=s.y

y=

C1*sin(t)+C2*cos(t)

例求微分方程

的解y(x),初始条件为y(0)=0,y

(1)=1

x*D2y-3*Dy=x^2'

y(0)=0,y

(1)=1'

s=

4/3*x^4-1/3*x^3

例求微分方程y”+y2=1的解,初始条件为y(0)=0

y=dsolve('

(Dy)^2+y^2=1'

y(0)=0'

sin(t)

-sin(t)

M积分变换

MATLAB的符号计算支持积分变换,对傅氏变换、拉氏变换和Z变换都提供了相应的符号计算函数。

1傅立叶变换及其反变换

Fw=fourier(ft,t,w)求时域函数ft的傅氏变换Fw

ft=ifourier(Fw,w,t)求频域函数Fw的傅立叶反变换ft

【说明】:

ft是以时间t为自变量的时域

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2