太原理工MATLAB实验报告.docx
《太原理工MATLAB实验报告.docx》由会员分享,可在线阅读,更多相关《太原理工MATLAB实验报告.docx(18页珍藏版)》请在冰点文库上搜索。
![太原理工MATLAB实验报告.docx](https://file1.bingdoc.com/fileroot1/2023-5/23/268bb6ab-9eda-4e68-8de4-b1a54cc5f090/268bb6ab-9eda-4e68-8de4-b1a54cc5f0901.gif)
太原理工MATLAB实验报告
实验二矩阵和数组的操作
1、实验目的及要求
1.掌握矩阵和数组的一般操作,包括创建、保存、修改和调用等。
2.学习矩阵和数组的加减运算与乘法。
3.掌握对数组中元素的寻访与赋值,会对数组进行一般的操作。
2、实验内容
1.用三种方法创建一个3*3矩阵,然后利用矩阵编辑器,将其扩充为4*5矩阵,并保存,试着调用它。
2.建立一个等差数列,然后由它产生一个对角阵
3.利用MATLAB的函数inv(A)求方阵A的逆矩阵。
3、主要仪器设备
计算机、MATLAB软件
四、操作方法与实验步骤
1.用三种方法创建一个3*3矩阵,然后利用矩阵编辑器,将其扩充为4*5矩阵,并保存,试着调用它。
(1)直接输入法
>>A=[3,2,1;4,5,6;7,8,9]
A=
321
456
789
(2)直接利用MATLAB提供的函数创建一个3*3矩阵
>>A=rand(3)
A=
0.95010.48600.4565
0.23110.89130.0185
0.60680.76210.8214
(3)利用MATLAB提供的“MatrixEditor”完成输入
步骤1在命令区输入A=1.
步骤2用鼠标单击工具栏的工作区浏览器,在弹出的变量浏览器中选中变量A,打开矩阵编辑器。
步骤3在左下角的两个文本框中分别输入3行3列。
步骤4把矩阵的行数和列数改为4和5,用鼠标选中表格中需要修改的元素。
步骤5在命令区输入savedataA,保存。
然后在命令区输入loaddata将文件中的矩阵读到工作区的内存中。
2.建立一个等差数列,然后由它产生一个对角阵
>>a=linspace(0,1.5,5)
a=
00.37500.75001.12501.5000
>>A=diag(a)
A=
00000
00.3750000
000.750000
0001.12500
00001.5000
3.利用MATLAB的函数inv(A)求方阵A的逆矩阵。
>>A=[1,2;5,6];
>>B=inv(A)
B=
-1.50000.5000
1.2500-0.2500
五、练习题(实验结果与分析)
1.创建一个5*5矩阵,提取主对角线以上的部分。
>>A=pascal(5)
A=
11111
12345
1361015
14102035
15153570
>>U=triu(A)
U=
11111
02345
0061015
0002035
000070
2.A=rand(3),B=magic(3),C=rand(3,4),计算A*B*C。
>>clearall
>>A=rand(3);
>>B=magic(3);
>>C=rand(3,4);
>>A*B*C
ans=
9.141811.043115.618813.3083
12.166514.445920.560718.0644
10.615311.053417.712515.7092
3.创建一个3*3矩阵,并求其转置,逆矩阵。
>>C=rand(3)
C=
0.95010.48600.4565
0.23110.89130.0185
0.60680.76210.8214
>>B=C'
B=
0.95010.23110.6068
0.48600.89130.7621
0.45650.01850.8214
>>A=inv(C)
A=
1.6740-0.1196-0.9276
-0.41651.17380.2050
-0.8504-1.00061.7125
4.用两种方法求Ax=b的解(A为4阶随即矩阵,b为4阶列向量)。
>>A=rand(4)
A=
0.86000.89980.66020.5341
0.85370.82160.34200.7271
0.59360.64490.28970.3093
0.49660.81800.34120.8385
>>b=[1;2;3;4]
b=
1
2
3
4
>>x=A\b
x=
-7.0715
17.6151
-9.8773
-4.2067
>>x=linsolve(A,b)
x=
-7.0715
17.6151
-9.8773
-4.2067
5.创建一个4阶随机矩阵A,计算
.
>>A=rand(4)
A=
0.56810.44490.95680.9797
0.37040.69460.52260.2714
0.70270.62130.88010.2523
0.54660.79480.17300.8757
>>A^3
ans=
3.90724.62114.51414.1934
2.36232.75512.79842.4013
3.32613.81393.92813.3593
3.00333.65963.35193.2958
6.求100-999之间能被21整除得数的个数。
>>A=100:
999;
>>B=find(mod(A,21)==0)
B=
Columns1through11
627486990111132153174195216
Columns12through22
237258279300321342363384405426447
Columns23through33
468489510531552573594615636657678
Columns34through43
699720741762783804825846867888
>>C=length(B)
C=
43
7.设有矩阵A和B
[1]求它们的乘积C=A*B。
[2]将矩阵C的右下角3*2子矩阵赋给D
A=[12345B=[3016
67891017-69
1112131415023-4
1617181920970
2122232425]41311]
>>A=[1:
5;6:
10;11:
15;16:
20;21:
25]
A=
12345
678910
1112131415
1617181920
2122232425
>>B=[3,0,16;17,-6,9;0,23,-4;9,7,0;4,13,11]
B=
3016
17-69
023-4
970
41311
>>C=A*B
C=
9315077
258335237
423520397
588705557
753890717
>>D=C(3:
5,[2,3])
D=
520397
705557
890717
实验三矩阵和数组的操作
1、实验目的及要求
1.掌握MATLAB的基本绘图命令。
2.掌握运用MATLAB绘制一维、二维、三维图形的方法。
3.给图形加以修饰。
2、实验内容
1.创建一个5*5魔方矩阵,并画出表示这个矩阵的图形。
2.在同一坐标轴里绘出y=sin(x),z=cos(x)两条曲线。
3.画出y=x^2的曲线(x∈(-5,5))。
4.在同一窗口,不同坐标系里分别绘出y1=sinx,y2=cosx,y3=sinh(x),y4=cosh(x)4个图形。
5.绘制一个三维曲线x=cosp,y=sinp,z=p。
3、主要仪器设备
计算机、MATLAB软件
四、操作方法及实验步骤
1.创建一个5*5魔方矩阵,并画出表示这个矩阵的图形。
在命令区输入:
A=magic(5);plot(A)得出下图
2.在同一坐标轴里绘出y=sin(x),z=cos(x)两条曲线。
在命令区输入:
>>x=linspace(0,2*pi,50);
>>y=sin(x);
>>plot(x,y)
>>holdon
>>z=cos(x);
>>plot(x,z)
>>holdoff
得图
(2)
3.画出y=x^2的曲线(x∈(-5,5))。
在这曲线上加入相同区间里的y=x^(1/3)的曲线,并且要求采用绿色折线标识。
在命令区输入:
>>x=linspace(-5,5,100);
>>y=x.^2;
>>plot(x,y)
>>holdon
>>z=x.^(1/3);
>>plot(x,z,'g--')
>>holdoff
得图(3)
4.在同一窗口,不同坐标系里分别绘出y1=sinx,y2=cosx,y3=sinh(x),y4=cosh(x)4个图形。
在命令区输入:
>>x=linspace(0,2*pi,30);
>>subplot(2,2,1);plot(x,sin(x));
>>subplot(2,2,2);plot(x,cos(x));
>>subplot(2,2,3);plot(x,sinh(x));
>>subplot(2,2,4);plot(x,cosh(x));得图(4)
5.绘制一个三维曲线x=cosp,y=sinp,z=p.在命令区输入:
>>p=0:
pi/10:
20*pi;
>>x=cos(p);y=sin(p);z=p;
>>plot3(x,y,z)得图(5)
(2)
(3)
(4)
(4)
五、练习
1.画出横坐标在(-15,15)上的函数y=cosx的曲线。
在命令区输入:
>>x=-15:
0.1:
15;
>>y=cos(x);
>>plot(x,y)得下图
(5)用图形表示离散函数y=|(n-6)|^(-1),并加入网络。
在命令区输入:
>>n=7:
1:
100;
>>Y=(abs((n-6))).^(-1);
>>plot(n,Y)
>>grid
(6)用图形表示连续调制波形y=sin(t)*sin(9*t)及其包络线。
在命令区输入:
>>t=linspace(0,pi,100);
>>y=sin(t).*sin(9*t);
>>plot(t,y)
>>z1=sin(t);
>>plot(t,z1)
>>y=sin(t).*sin(9*t);
>>plot(t,y)
>>holdon
>>plot(t,z1)
>>holdon
>>z2=-sin(t);
>>plot(t,z2)得下图
实验四M文件的编写
1、实验目的及要求
1.学习MATLAB中的关系运算和逻辑运算,掌握他们的表达形式和用法。
2.掌握MATLAB中的选择结构和循环结构。
3.学会用MATLAB进行M文件的编写和调用。
2、实验内容
1.创建一个矩阵,用函数all和any作用于该矩阵,比较结果。
2.编写一个switch语句,判断输入数的奇偶性。
3.编写一个程序画出下列分段函数所表示的曲面,并用M文件存储。
3、主要仪器设备
计算机、MATLAB软件
四、操作方法与实验步骤
1.创建一个矩阵,用函数all和any作用于该矩阵,比较结果。
>>a=[1,2,0,3;2,0,1,4];
>>b=all(a)
b=
1001
>>c=any(a)
c=
1111
>>d=all(b)
d=
0
>>e=any(b)
e=
1
2.编写一个switch语句,判断输入数的奇偶性。
clear
n=input('n=');
switchmod(n,2);
case1
A=‘奇’,
case0
A=‘偶’,
otherwise
A=‘空’,
End
输入和输出为:
n=9
A=
奇
3.编写一个程序画出下列分段函数所表示的曲面,并用M文件存储。
f(x1,x2)=0.5457exp(-0.75x2^2-3.75x1^2-1.5x1)x1+x2>1
0.7575exp(-x2^2-6x1^2)-10.5457exp(-0.75x2^2-3.75x1^2+1.5x1)x1+x2<=-1
步骤1.打开M文件编辑器file,编写程序:
a=2;b=2;
clf;
x=-a:
0.2:
a;y=-b:
0.2:
b;
fori=1:
length(x)
forj=1:
length(x)
ifx(j)+y(i)>1
z(i,j)=0.5457*exp(-0.75*y(i)^2-3.75*x(j)^2-1.5*x(j));
elseifx(j)+y(i)<=-1
z(i,j)=0.5457*exp(-0.75*y(i)^2-3.75*x(j)^2+1.5*x(j));
else
z(i,j)=0.7575*exp(-y(i)^2-6*x(j)^2);
end
end
end
end
axis([-a,a,-b,b,min(min(z)),max(max(z))]);
colormap(flipud(winter));surf(x,y,z);
步骤2.选择file/save命令,将文件保存命名为firsr.m。
步骤3在命令窗口输入文件名,可看见图形如下:
4、练习
1.编写一段程序计算n的阶乘。
步骤一:
打开M文件编辑器,编写以下内容:
clear
n=input('n=');
sum=1;
fori=1:
n
sum=sum*i;
end
sum
步骤二:
将文件保存并命名。
步骤三:
在命令窗口输入文件名然后可得到:
n=5
sum=
120
2.编写一个程序求出阶乘大于或等于99^99的最小整数。
编写程序如下:
clear
sum=1;
fori=1:
1000
sum=sum*i;
ifsum>=99^99
break
end
end
i
最后得出结果:
i=
120
讨论、心得
通过本次实验,我熟悉了MATLAB的各个命令窗口以及基本操作,能够进行一些数值运算,实现语句的重调和修改。
还学会了用它对数组和矩阵进行一系列操作;学会了用它绘制一维、二维、三维图形并对图形加以修饰;学会了编写M文件以及MATLAB中的一些运算及其表现方式和用法。
总之,在学习过程中,我发现MATLAB的功能十分强大,在使用简单易用的程序语句的同时,还具有强大的数据处理能力、出色的图形处理功能以及应用软件的开发等多种功能,可以说,MATLAB小到计算数据,大到设计飞机都可以使用。
这么一款功能强大、多样,且非常实用的软件,我想我们有必要好好地学习与掌握它。