数学软件实验报告实验三.docx
《数学软件实验报告实验三.docx》由会员分享,可在线阅读,更多相关《数学软件实验报告实验三.docx(21页珍藏版)》请在冰豆网上搜索。
![数学软件实验报告实验三.docx](https://file1.bdocx.com/fileroot1/2023-1/31/e12cf108-1c9e-46fa-a788-7450751d4aeb/e12cf108-1c9e-46fa-a788-7450751d4aeb1.gif)
数学软件实验报告实验三
数学软件实验报告
学院名称:
理学院专业年级:
姓名:
学号:
课程:
数学软件实验报告日期:
2014年11月8日
实验三MATLAB的符号矩阵运算与符号微积分
一.实验目的
MATLAB不仅具有数值运算功能,还开发了在matlab环境下实现符号计算的工具包SymbolicMathToolbox。
本次实验的目的对所学的符号矩阵的创建与修改、各种符号运算进行巩固,学会使用数学软件来求极限、微分、积分,解方程和解微分方程等。
二.实验要求
理解符号变量、符号表达式、符号矩阵等概念,掌握符号矩阵和符号表达式的创建,了解符号运算与数值运算的不同点,会修改已有的符号矩阵,并会符号矩阵与数值矩阵的相互转换,掌握符号矩阵矩阵的运算。
熟练掌握符号求极限、符号求微分(导数)、符号求积分(不定积分和定积分),掌握符号代数方程(组)求解、符号微分方程(组)求解,了解符号积分变换。
三.实验内容
实验四
第三节矩阵特征值与特征向量
求矩阵的特征值与特征向量
>>A=[142;0-34;043];
>>[v,d]=eig(A)
v=
1.00000.4082-0.6667
0-0.8165-0.3333
00.4082-0.6667
d=
100
0-50
005
>>B=[-9-3-16;13716;3310];
>>c=eig(B)
c=
-6.0000
10.0000
4.0000
>>[v1,d1]=eig(A,B)
v1=
0.84690.8279+0.1721i0.8279-0.1721i
-1.00000.1751-0.0982i0.1751+0.0982i
-0.1798-0.2898+0.0785i-0.2898-0.0785i
d1=
2.011400
0-0.1724+0.1486i0
00-0.1724-0.1486i
矩阵的对角化
>>D=[122;212;221];
trigle(D)
ans=
1
>>[1,k]=eig(D)
?
?
?
Error:
AnarrayformultipleLHSassignmentcannotcontainnumericvalue.
>>inv
(1)*D*1
ans=
122
212
221
>>F=[011-1;10-11;1-101;-1110];
>>[Fd,Fv]=eig(F)
Fd=
-0.50000.28870.78870.2113
0.5000-0.28870.21130.7887
0.5000-0.28870.5774-0.5774
-0.5000-0.866000
Fv=
-3.0000000
01.000000
001.00000
0001.0000
>>Fd'*Fd
ans=
1.00000.000000
0.00001.0000-0.00000.0000
0-0.00001.00000
00.000001.0000
>>Fd'*F*Fd
ans=
-3.0000000
-0.00001.000000
0-0.00001.00000.0000
00.00000.00001.0000
矩阵相似与Jordan标准形
第3章符合运算功能
1、符号表达式的生产
(1)创建符号函数
>>f='lpg(x)'
f=
lpg(x)
(2)创建符号方程
>>eqation='a*x^2+b*x+c=0'
eqation=
a*x^2+b*x+c=0
(3)创建符号微分方程
>>diffeq='Dy-y=x'
diffeq=
Dy-y=x
>>f=sym('sin(x)')
f=
sin(x)
>>f=sym('sin(x)^2=0')
f=
2
sin(x)=0
>>symsx
>>f=sin(x)+cos(x)
f=
sin(x)+cos(x)
2、符号和数值之间的转换
(1).digits函数、vpa函数、subs函数的常用调用格式
>>s=solve('3*x^2-exp(x)=0')
s=
[1/2]
[-2lambertw(-1/63)]
[]
[1/2]
[-2lambertw(-1,-1/63)]
[]
[1/2]
[-2lambertw(1/63)]
>>vpa(s)
ans=
[0.9100075730]
[]
[3.733079028]
[]
[-0.4589622676]
>>vpa(s,6)
ans=
[0.910012]
[]
[3.73306]
[]
[-0.458964]
>>x=sym('x')
x=
x
>>f=x-cos(x)
f=
x-cos(x)
>>f1=subs(f,'pi',x)
f1=
x-cos(x)>>digits(25)
>>vpa(f1)
ans=
x-1.cos(x)
3、符号函数的运算
(1).复合函数运算:
功能函数compose
>>symsxyztu
>>f=1/(1+x^2)
f=
1
------
2
x+1
>>g=sin(y)
g=
sin(y)
>>h=x^t
h=
t
x
>>p=exp(-y/u)
p=
exp(-y/u)
>>compose(f,g)
ans=
1
-----------
2
sin(y)+1
>>compose(f,g,t)
ans=
1
-----------
2
sin(t)+1
>>compose(h,g,x,z)
ans=
t
sin(z)
>>compose(h,g,t,z)
ans=
sin(z)
x
>>compose(h,p,x,y,z)
ans=
t
exp(-z/u)
>>compose(h,p,t,u,z)
ans=
exp(-y/z)
x
(2).反函数运算:
由函数finverse实现
>>symssy
>>symsxy
>>f=x^2+y
f=
2
x+y
>>finverse(f,y)
ans=
2
-x+y
>>finverse(f)
Warning,finverse(x^2+y)isnotunique
ans=
1/2
(-y+x)
4、符号矩阵的创立
(1).使用sym函数直接创建符号函数
>>a=sym('[1/s+x,sin(x)cos(x)^2/(b+x);9,exp(x^2+y^2),log(tanh(y))]')
Evaluating:
Matrix([,<9|map[evalhf](exp,((x^2)+~(y^2)))|map[evalhf](ln,map[evalhf](tanh,y))>],scan=columns);
Warning:
deprecatedsyntaxusedinsymconstructor
>Insym.symat163
a=
[2]
[cos(x)]
[1/s+xsin(x)-------]
[b+x]
[]
[2]
[22y-1]
[9exp(x)+exp(y)------]
[2]
[y+1]
(2).用创建子阵的方法创建符号矩阵
>>'exp(-i),3,x^3+y^9'
ans=
exp(-i),3,x^3+y^9
>>b=[a;'[exp(-i),3,x^3+y^9]']
b=
[2]
[cos(x)]
[1/s+x,sin(x),-------]
[b+x]
[2]
[22y-1]
[9,exp(x)+exp(y),------]
[2]
[y+1]
[9393
[[exp(-i),3,y+x],[exp(-i),3,y+x],
93]
[exp(-i),3,y+x]]
(3).将数值矩阵转化为符号矩阵
>>a=[2/3,sqrt
(2),0.222;1/4,1/0.23,log(3)]
a=
0.66671.41420.2220
0.25004.34781.0986
>>b=sym(a)
b=
[0.666666666666666630,1.41421356237309515,0.222000000000000003]
[0.250000000000000000,4.34782608695652151,1.09861228866810956]
(4).符号矩阵的索引和修改
>>b(2,3)
ans=
1.09861228866810956
>>b(2,3)='99'
b=
[0.666666666666666630,1.41421356237309515,0.222000000000000003]
[0.250000000000000000,4.34782608695652151,99.]
5、符号矩阵的运算
(1)基本运算
a、符号矩阵的四则运算
加减法
>>a=sym('[1/x,1/(x+1);1/(x+2),1/(x+3)]')
a=
[1]
[1/x-----]
[x+1]
[]
[11]
[----------]
[x+2x+3]
>>b=sym('[x,1;x+2,0]')
b=
[x1]
[]
[x+20]
>>b-a
ans=
[1]
[x-1/x1------]
[x+1]
[]
[11]
[x+2------------]
[x+2x+3]
乘除法
>>b\a
ans=
[11]
[-----------------------]
[2(x+2)(x+3)]
[(x+2)]
[]
[x+12x+3]
[4----------2-----------------------]
[2(x+3)(x+1)(x+2)]
[(x+2)x]
>>a\b
ans=
[22]
[-(2x+7x+6)x1/2(x+3x+2)x]
[]
[2]
[2(x+1)(x+3)-1/2(x+3)x(x+1)]
矩阵的转置
>>a'
ans=
[11]
[------------------]
[conj(x)2+conj(x)]
[]
[11]
[----------------------]
[1+conj(x)3+conj(x)]
符号矩阵行列式的运算
>>det(a)
ans=
2
-------------------------
(x+3)(x+1)(x+2)x
矩阵的逆
>>inv(b)
ans=
[1]
[0-----]
[x+2]
[]
[x]
[1------]
[x+2]
符号矩阵的秩
>>rank(a)
ans=
2
符号矩阵的幂运算
>>a^2
ans=
[1111]
[----+------------------------+---------------]
[2(x+1)(x+2)x(x+1)(x+1)(x+3)]
[x]
[]
[1111]
[---------+------------------------------+--------]
[(x+2)x(x+2)(x+3)(x+1)(x+2)2]
[(x+3)]
符号矩阵的指数运算
>>exp(b)
ans=
[exp(x)exp
(1)]
[]
[exp(x+2)1]
(2)矩阵分解
>>[x,y]=eig(b)
x=
[11]
[-------------------------------,-------------------------------]
[21/221/2]
[-1/2x+1/2(x+4x+8)-1/2x-1/2(x+4x+8)]
[1,1]
y=
[21/2]
[1/2x+1/2(x+4x+8)0]
[]
[21/2]
[01/2x-1/2(x+4x+8)]
>>symstreal
>>A=[01;-10]
A=
01
-10
>>E=expm(t*A)
E=
[cos(t)sin(t)]
[]
[-sin(t)cos(t)]
>>sigma=svd(E)
sigma=
[221/2]
[(cos(t)+sin(t))]
[]
[221/2]
[(cos(t)+sin(t))]
>>simplify(sigma)
ans=
[221/2]
[(cos(t)+sin(t))]
[]
[221/2]
[(cos(t)+sin(t))]
>>a=sym('[112;013;002]')
a=
[112]
[]
[013]
[]
[002]
>>[x,y]=jordan(a)
x=
[5-5-5]
[]
[30-5]
[]
[100]
y=
[200]
[]
[011]
[]
[001]
>>z=sym('[x*yx^asin(y);t^alog(y)b;yexp(t)x]')
Evaluating:
Matrix([,,],scan=columns);
Warning:
deprecatedsyntaxusedinsymconstructor
>Insym.symat163
z=
[a]
[x.yxsin(y)]
[]
[a]
[tlog(y)b]
[]
[yexp(t)x]
>>triu(z)
ans=
[a]
[x.yxsin(y)]
[]
[0log(y)b]
[]
[00x]
>>diag(z)
ans=
[x.y]
[]
[log(y)]
[]
[x]
>>tril(t,-1)
ans=
0
>>colspace(a)
ans=
[100]
[]
[010]
[]
[001]
>>a[123
?
?
?
a[123
|
Error:
Unbalancedorunexpectedparenthesisorbracket.
>>a=[123
123
123]
a=
123
123
123
>>null(a)
ans=
0.96360
-0.1482-0.8321
-0.22240.5547
>>null(a,'r')
ans=
-2-3
10
01
>>symx
ans=
x
>>symsx
>>factor(x^9-1)
ans=
263
(x-1)(x+x+1)(x+x+1)
>>factor(sym('12345678901234567890'))
ans=
1,2,3,3,5,101,3803,3607,3541,27961
>>symsxy
>>expand((x+1)^3)
ans=
32
x+3x+3x+1
>>expand(sin(x+y))
ans=
sin(x)cos(y)+cos(x)sin(y)
>>symsxy
>>collect(x^2*y+y*x-x^2-2+x)
ans=
2
-2+(y-1)x+(y+1)x
符号矩阵的简化
>>symsx
>>simplify(sin(x)^2+cos(x)^2)
ans=
22
sin(x)+cos(x)
>>symscalphabeta
>>simplify(exp(c*log(sqrt(alpha+beta))))
ans=
exp(1/2log(alpha+beta)c)
>>[n,d]=numden(x/y+y/x)
n=
22
x+y
d=
xy
>>horner(x^3-6*x^2+11*x-6)
ans=
-6+(11+(-6+x)x)x
>>symsxy
>>expand((x+1)^3)
ans=
32
x+3x+3x+1
>>expand(sin(x+y))
ans=
sin(x)cos(y)+cos(x)sin(y)
6、符号微积分
符号极限
>>symsxath
>>limit(sin(x)/x)
ans=
1
>>limit((1+2*t/x)^(3*x),x,inf)
ans=
exp(6t)
>>limit(1/x,x,0,'right')
ans=
infinity
符号积分
>>symsxx1alphaut;
>>A=[cos(x*t),sin(x*t);-sin(x*t),cos(x*t)]
A=
[cos(tx)sin(tx)]
[]
[-sin(tx)cos(tx)]
>>int(A,t)
ans=
[sin(tx)cos(tx)]
[-----------------]
[xx]
[]
[cos(tx)sin(tx)]
[----------------]
[xx]
>>int(x1*log(1+x1),0,1)
ans=
1/4
>>symska
>>simple(symsum(k))
ans=
2
1/2k-1/2k
>>simple(symsum(k^2,0,n))
ans=
642246422422
1/3x+xy+xy+1/3y+1/2x+xy+1/2y+1/6x+1/6y
>>symsum(k^2,0,10)
ans=
385
符号微分和差分
>>x=sym('x')
x=
x
>>t=sym('t')
t=
t
>>diff(sin(x^2))
ans=
2
2cos(x)x
>>diff(t^6,6)
ans=
720
>>x=sym(['x']);
>>y=sym(['y']);
>>z=sym(['z']);
>>jacobian([x^2+y^2;x^2-y^2],[xy])
ans=
[2x2y]
[]
[2x-2y]
7、符号代数方程求解
线性方程组的符号解法
>>[x,y,z]=solve('10*x-y=9','-x+10*y-2*z=7','-x+10*y-2*z=7','-2*y+10*z=6')
Warning,solving4equationsfor3variables
x=
[473]
[---]
[475]
y=
[91]
[--]
[95]
z=
[376]
[---]
[475]
>>vpa([x,y,z])
ans=
[0.9957894737,0.9578947368,0.7915789474]
非线性方程组符号解法
>>x0=[0.50.5];
>>fsolve('fc',x0)
ans=
0.52650.5079
8、符号微分方程求解
>>dsolve('Dx=-a*x')
ans=
_C1exp(-at)
>>y=dsolve('Dy=1/sqrt(y)','y(0)=1')
y=
2/3
1/4(12t+8)
四、实验总结
在这次试验中,我做了矩阵的特征值与特征向量的内容。
在做矩阵相似于Jordon标准形的时候,出现了一些错误,到最后还是没有把它做出来。
之后做了第3章,符合运算功