matlab实验二.docx
- 文档编号:26147126
- 上传时间:2023-06-17
- 格式:DOCX
- 页数:24
- 大小:62.72KB
matlab实验二.docx
《matlab实验二.docx》由会员分享,可在线阅读,更多相关《matlab实验二.docx(24页珍藏版)》请在冰豆网上搜索。
matlab实验二
实验2MATLAB数值计算、符号运算功能
一、实验目的
1、掌握建立矩阵、矩阵分析与处理的方法。
2、掌握线性方程组的求解方法。
3、掌握数据统计和分析方法、多项式的常用运算。
4、掌握求数值导数和数值积分、常微分方程数值求解、非线性代数方程数值求解的方法。
5、掌握定义符号对象的方法、符号表达式的运算法则及符号矩阵运算、符号函数极限及导数、符号函数定积分和不定积分的方法。
二、预习要求
(1)复习4、5、6章所讲内容;
(2)熟悉MATLAB中的数值计算和符号运算的实现方法和主要函数。
三、实验内容
1、已知
,求A的特征值及特征向量,并分析其数学意义。
>>A=[-29,6,18;20,5,12;-8,8,5];
>>[V,D]=eig(A)
V=
0.71300.28030.2733
-0.6084-0.78670.8725
0.34870.55010.4050
D=
-25.316900
0-10.51820
0016.8351
V为A的特征向量,D为A的特征值,3个特征值是-25.3169、10.5182和16.8351。
>>A*V
ans=
-18.0503-2.94874.6007
15.40178.274314.6886
-8.8273-5.78576.8190
>>V*D
ans=
-18.0503-2.94874.6007
15.40178.274314.6886
-8.8273-5.78576.8190
经过计算,A*V=V*D。
2、不用rot90函数,实现方阵左旋90°或右旋90°的功能。
例如,原矩阵为A,A左旋后得到B,右旋后得到C。
,
,
提示:
先将A转置,再作上下翻转,则完成左旋90°;如将A转置后作左右翻转,则完成右旋转90°,可用flipud、fliplr函数。
>>a=[14710;25811;36912]
a=
14710
25811
36912
>>B=rot90(a)
B=
101112
789
456
123
>>C=rot90(s,3)
C=
321
654
987
121110
3建立一个5*5矩阵,求它的行列式值、秩。
A=fix(10*rand(5))
H=det(A)
Trace=trace(A)
Rank=rank(A)
Norm=norm(A)
A=
29407
59983
94796
98961
11677
H=
-12583
Trace=
31
Rank=
5
Norm=
30.1601
4下面是一个线性方程组
,
(1)求方程的解。
A=[1/2,1/3,1/4;1/3,1/4,1/5;1/4,1/5,1/6];
b=[0.95,0.67,0.52]';
x=inv(A)*b
%
(2):
B=[0.95,0.67,0.53]';
x=inv(A)*B
%(3):
cond(A)
x=
1.2000
0.6000
0.6000
x=
3.0000
-6.6000
6.6000
ans=
1.3533e+003
(2)将方程右边向量元素b3=0.52改为0.53再求解,并比较b3的变化和解的相对变化。
A=hilb(4)
A(:
1)=[]
A(4,:
)=[]
B=[0.95,0.67,0.52]';
X=inv(A)*B
B1=[0.95,0.67,0.53]';
X1=inv(A)*B1
N=cond(B)
N1=cond(B1)
Na=cond(A)%矩阵A为病态矩阵
A=
1.00000.50000.33330.2500
0.50000.33330.25000.2000
0.33330.25000.20000.1667
0.25000.20000.16670.1429
A=
0.50000.33330.2500
0.33330.25000.2000
0.25000.20000.1667
0.20000.16670.1429
A=
0.50000.33330.2500
0.33330.25000.2000
0.25000.20000.1667
X=
1.2000
0.6000
0.6000
X1=
3.0000
-6.6000
6.6000
N=
1
N1=
1
Na=
1.3533e+003
(3)计算系数矩阵的条件数并分析结论。
无
5建立矩阵A,试比较sqrtm(A)和sqrt(A),分析它们的区别。
A=[1,4,9;16,25,36;49,64,81]
B=sqrtm(A)
C=sqrt(A)%sqrtm函数是以矩阵为单位进行计算,sqrt函数是以矩阵中的元素进行计算
A=
149
162536
496481
B=
0.6344+1.3620i0.3688+0.7235i0.7983-0.4388i
1.4489+1.1717i2.7697+0.6224i3.2141-0.3775i
4.3578-1.6237i5.7110-0.8625i7.7767+0.5231i
C=
123
456
789
6将100个学生5门功课的成绩存入矩阵P中,进行如下处理:
(1)分别求每门课的最高分、最低分及相应学生序号。
A=45+(95-45)*rand(100,5);
[Y,U]=max(A)
[X,U]=min(A)
运行结果:
Y=
94.972193.925094.514694.326594.5999
U=
9480451487
X=
45.351745.692945.385145.090645.2279
U=
4823272360
(2)分别求每门课的平均分和标准方差。
A=45+(95-45)*rand(100,5);
aver=mean(A)
s1=std(A)
运行结果:
aver=
67.187670.126269.001771.017470.3569
s1=
13.227314.130713.805315.119114.7097
(3)5门课程总分的最高分、最低分及相应学生序号。
A=45+(95-45)*rand(100,5);
B=sum(A,2)
disp('最高分及学号:
'),[Y,U]=max(B)
disp('最低分及学号:
'),[X,U]=min(B)
运行结果:
最高分及学号:
Y=
432.6472
U=
84
最低分及学号:
X=
287.6246
U=
50
(4)将5门课总分按从大到小顺序存入zcj中,相应学生序号存入xsxh。
A=45+(95-45)*rand(100,5);
B=sum(A,2);
[X,I]=sort(B);
zcj=flipud(X)
xsxh=flipud(I)
提示:
编程时,为避免输入学生成绩的麻烦,可用取值范围在[45,95]之间的随机矩阵来表示学生成绩。
7利用MATLAB提供的rand函数生成30000个符合均匀分布的随机数,然后检验随机数的性质:
(1)均值和标准方差;
(2)最大元素和最小元素;
(3)大于0.5的随机数个数占总数的百分比。
A=rand(1,30000);
aver=mean(A)
s1=std(A)
max=max(max(A))
min=min(min(A))
k=find(A>0.5);
a=length(k);
disp('百分比是:
'),per=a/30000
运行结果:
均值是:
aver=
0.4982
s1=
0.2889
max=
1.0000
min=
4.8158e-005
百分比是:
per=
0.4988
8分别用3种不同的数值方法求解线性方程组。
(提示:
LU函数、inv函数)
9求函数
在(0,1)内的最小值。
10已知x=6,y=5,利用符号表达式:
。
(提示:
定义符号常数
,
)
x=sym('6'),y=sym('5')
x=
6
y=
5
>>z=(x+1)/(sqrt(3+x)-sqrt(y))
z=
7/(3-5^(1/2))
11已知:
,
,
求:
(1)
。
(2)B的逆矩阵并验证结果。
(3)包括B矩阵主对角线元素的下三角阵。
(4)B的行列式值。
提示:
用于数值矩阵分析的有关函数同样适用于符号矩阵。
验证结果时须将结果化简。
(1)B=P1
P2
A
P1=[010;100;001]
P1=
010
100
001
>>P2=[100;010;101]
P2=
100
010
101
>>a=sym('a');b=sym('b');c=sym('c');d=sym('d');e=sym('e');f=sym('f');g=sym('g');h=sym('h');i=sym('i');
>>A=[abc;def;ghi]
A=
[a,b,c]
[d,e,f]
[g,h,i]
B=P1*P2*A
B=
[d,e,f]
[a,b,c]
[a+g,b+h,c+i]
(2)B的逆矩阵并验证结果
C=inv(B)
C=
[(i*b-c*h)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b),(-e*c-i*e+f*b+f*h)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b),-(-e*c+f*b)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b)]
[-(i*a-c*g)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b),-(-d*c-i*d+f*a+f*g)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b),(-d*c+f*a)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b)]
[(a*h-b*g)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b),(-d*b-d*h+e*a+e*g)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b),-(-d*b+e*a)/(i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b)]
(3)包括B矩阵主对角线元素的下三角阵
tril(B)
ans=
[d,0,0]
[a,b,0]
[a+g,b+h,c+l]
(4)B的行列式值
det(B)
ans=
i*d*b-d*c*h-i*a*e+a*f*h+g*e*c-g*f*b
12用符号方法求下列极限或导数。
(1)
;
(2)已知
,分别求
、
、
。
(1)x=sym('x')
x=
x
>>f=(x*(exp(sin(x))+1)-2*(exp(tan(x))-1))/sin(x).^3
f=
(x*(exp(sin(x))+1)-2*exp(tan(x))+2)/sin(x)^3
>>limit(f)
ans=
-1/2
(4)x=sym('x')
x=
x
>>y=(1-cos(2*x))/x
y=
(1-cos(2*x))/x
>>diff(y,x,1)
ans=
2*sin(2*x)/x-(1-cos(2*x))/x^2
>>diff(y,x,2)
ans=
4*cos(2*x)/x-4*sin(2*x)/x^2+2*(1-cos(2*x))/x^3
>>symsatx;
>>f=sym('[a^x,t^3;t*cos(x),log(x)]')
f=
[a^x,t^3]
[t*cos(x),log(x)]
>>diff(f,x,1);
>>diff(f,x,1)
ans=
[a^x*log(a),0]
[-t*sin(x),1/x]
>>diff(f,t,2)
ans=
[0,6*t]
[0,0]
>>diff(f,x)/diff(f,t)
ans=
[0,1/cos(x)*a^x*log(a)]
[1/3/t^2/x,-1/cos(x)*t*sin(x)]
13用符号方法求下列积分:
(1)
;
(2)
。
(1)sym('x')
ans=
x
>>f=1/(1+x^4+x^8)
f=
1/(1+x^4+x^8)
>>int(f,x)
ans=
1/6*3^(1/2)*atan(1/3*(2*x-1)*3^(1/2))+1/6*3^(1/2)*atan(1/3*(1+2*x)*3^(1/2))-1/12*3^(1/2)*log(-x^2+3^(1/2)*x-1)+1/12*3^(1/2)*log(x^2+3^(1/2)*x+1)
(3)symsx
>>f=(x.^2+1)/(x.^4+1)
f=
(x^2+1)/(1+x^4)
>>int(f,x,0,inf)
ans=
1/2*pi*2^(1/2)
14化简表达式。
(1)
;
byte1=sym('byte1')
byte1=
byte1
>>byte2=sym('byte2')
byte2=
byte2
>>S=sin(byte1)*cos(byte2)-cos(byte1)*sin(byte2)
S=
sin(byte1)*cos(byte2)-cos(byte1)*sin(byte2)
>>simplify(S)
ans=
sin(byte1)*cos(byte2)-cos(byte1)*sin(byte2)
(2)
。
x=sym('x')
x=
x
>>S=(4*x^2+8*x+3)/(2*x+1)
S=
(4*x^2+8*x+3)/(2*x+1)
>>simple(s)
>>simple(S)
simplify:
2*x+3
radsimp:
2*x+3
combine(trig):
2*x+3
factor:
2*x+3
expand:
4/(2*x+1)*x^2+8/(2*x+1)*x+3/(2*x+1)
combine:
(4*x^2+8*x+3)/(2*x+1)
convert(exp):
(4*x^2+8*x+3)/(2*x+1)
convert(sincos):
(4*x^2+8*x+3)/(2*x+1)
convert(tan):
(4*x^2+8*x+3)/(2*x+1)
collect(x):
(4*x^2+8*x+3)/(2*x+1)
ans=
2*x+3
15分解因式。
(1)
;
x=sym('x')
x=
x
>>y=sym('y')
y=
y
>>A=x^4-y^4
A=
x^4-y^4
>>factor(A)
ans=
(x-y)*(x+y)*(x^2+y^2)
(2)5135。
factor(sym('5135'))
ans=
(5)*(13)*(79)
四、实验报告
1、实验内容中的代码与运行结果的截图;
2、本次实验的总结。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 实验