Matlab 实验指导书.docx
- 文档编号:29356162
- 上传时间:2023-07-22
- 格式:DOCX
- 页数:28
- 大小:580.11KB
Matlab 实验指导书.docx
《Matlab 实验指导书.docx》由会员分享,可在线阅读,更多相关《Matlab 实验指导书.docx(28页珍藏版)》请在冰豆网上搜索。
Matlab实验指导书
Matlab实验指导书
实验一MATLAB工作环境熟悉及简单命令的执行
一、实验目的:
熟悉MATLAB的工作环境,学会使用MATLAB进行一些简单的运算。
二、实验内容:
MATLAB的启动和退出,熟悉MATLAB的桌面(Desktop),包括菜单(Menu)、工具条(Toolbar)、命令窗口(CommandWindow)、历史命令窗口、工作空间(Workspace)等;完成一些基本的矩阵操作;学习使用在线帮助系统。
三、实验步骤:
1、启动MATLAB,熟悉MATLAB的桌面。
2、在命令窗口执行命令完成以下运算,观察workspace的变化,记录运算结果。
(1)(365-522-70)3
答案:
>>(365-52*2-70)/3
ans=
63.6667
(2)>>area=pi*2.5^2
答案:
area=pi*2.5^2
area=
19.6350
(3)已知x=3,y=4,在MATLAB中求z:
答案:
>>x=3;
>>y=4;
>>z=(x^2*y^3)/(x-y)^2
z=
576
(4)将下面的矩阵赋值给变量m1,在workspace中察看m1在内存中占用的字节数。
m1=
执行以下命令
>>m1(2,3)
>>m1(11)
>>m1(:
3)
>>m1(2:
3,1:
3)
>>m1(1,4)+m1(2,3)+m1(3,2)+m1(4,1)
答案:
>>m1(2,3)
ans=
10
>>m1(11)
ans=
6
>>m1(:
3)
ans=
3
10
6
15
>>m1(2:
3,1:
3)
ans=
51110
976
>>m1(1,4)+m1(2,3)+m1(3,2)+m1(4,1)
ans=
34
(5)执行命令>>helpabs
查看函数abs的用法及用途,计算abs(3+4i)
>>abs(3+4i)
ans=
5
(6)执行命令
>>x=0:
0.1:
6*pi;
>>y=5*sin(x);
>>plot(x,y)
答案
>>x=0:
0.1:
6*pi;
>>y=5*sin(x);
>>plot(x,y)
(6)运行MATLAB的演示程序,>>demo,以便对MATLAB有一个总体了解。
四、思考题
1、以下变量名是否合法?
为什么?
(1)x2
(2)3col
(3)_row
(4)for
答案
(1)>>x2=0
x2=
0
合法
(2)不合法
(3)不合法
(4)不合法
2、求以下变量的值,并在MATLAB中验证。
(1)a=1:
2:
5;
(2)b=[a'a'a'];
(3)c=a+b(2,:
)
答案
>>a=1:
2:
5;
>>b=[a'a'a'];
>>c=a+b(2,:
)
c=
468
实验二MATLAB语言矩阵运算
一、实验目的:
掌握基本的矩阵运算及常用的函数。
二、实验内容:
1、下列运算是否合法,为什么?
如合法,结果是多少?
(1)result1=a'
(2)result2=a*b
(3)result3=a+b
(4)result4=b*d
(5)result5=[b;c']*d
(6)result6=a.*b
(7)result7=a./b
(8)result8=a.*c
(9)result9=a.\b
(10)result10=a.^2
(11)result11=a^2
(12)result11=2.^a
答案
(1)result1=
14
25
36
(2)不合法
(3)result3=
362
5811
(4)result4=
312222
404913
(5)result5=
312222
404913
-5-87
(6)result6=
28-3
41530
(7)result7=
0.500000000000000.50000000000000-3.00000000000000
4.000000000000001.666666666666671.20000000000000
(8)不合法
(9)result9=
2.000000000000002.00000000000000-0.33333333333333
0.250000000000000.600000000000000.83333333333333
(10)result10=
149
162536
(11)不合法
(12)result11=
248
163264
2、用MATLAB求下面的的方程组。
(1)
答案
>>A=[7,2,1,-2;9,15,3,-2;-2,-2,11,5;1,3,2,13]
A=
721-2
9153-2
-2-2115
13213
>>B=[4;7;-1;0]
B=
4
7
-1
0
>>X=inv(A)*B
X=
0.49793125397836
0.14449395289624
0.06285805219605
.0813********
(2)
答案
>>A=[1,1,1,0;1,2,1,-1;2,-1,0,-3;3,3,5,-6]
A=
1110
121-1
2-10-3
335-6
>>B=[1;8;3;5]
B=
1
8
3
5
>>X=inv(A)*B
X=
1.00000000000000
5.00000000000000
-5.00000000000000
-2.00000000000000
3、已知
(1)求矩阵A的秩(rank)
(2)求矩阵A的行列式(determinant)
(3)求矩阵A的逆(inverse)
(4)求矩阵A的特征值及特征向量(eigenvalueandeigenvector)
答案
(1)rank(a)
ans=
4
(2)det(a)
ans=
12568
(3)inv(a)
ans=
0.17441120305538-0.03031508593253-0.012492043284530.02697326543603
-0.105028644175680.07893061744112-0.012094207511140.00063653723743
0.008274984086570.017266072565250.09110439210694.0311********
0.00954805856143-0.01853914704010-0.01026416295353.0794********
(4)[V,D]=eig(a)
V=
-0.762912867358420.09191514382113+0.06402192916720i0.09191514382113-0.06402192916720i-0.02994302517216
0.622344337345540.60869676339167+0.02757207496609i0.60869676339167-0.02757207496609i0.26373648270307
0.08068079671255-0.74742565682047-0.747425656820470.64344846716961
-0.155377255847590.03419444783041-0.23741621070323i0.03419444783041+0.23741621070323i0.71799759960046
D=
4.85542484194312000
012.64598520809016+1.83331820265823i00
0012.64598520809016-1.83331820265823i0
00015.85260474187659
4、关系运算与逻辑运算
已知a=20,b=-2,c=0,d=1
(1)r1=a>b
(2)r2=a>b&c>d
(3)r3=a==b*(-10)
(4)r4=~b|c
答案
(1)r1=
1
(2)r2=
0
(3)r3=
1
(4)r4=
0
三、思考题
求y=?
(用formatlong查看y的值)
y=0;
forn=-10:
10
y=y+2^n;
end
y
y=
2.047999023437500e+003
实验三程序的编辑及调试
一、实验目的:
掌握MATLAB程序编辑、运行及调试方法。
二、实验内容:
1、启动MATLAB后,点击File|New|M-File,启动MATLAB的程序编辑及调试器(Editor/Debugger),编辑以下程序,点击File|Save保存程序,注意文件名最好用英文字符。
点击Debug|Run运行程序,在命令窗口查看运行结果,程序如有错误则改正。
注:
数论中一个有趣的题目:
任意一个正整数,若为偶数,则用2除之,若为奇数,则与3相乘再加上1。
重复此过程,最终得到的结果为1。
如:
21
3105168421
63105168421
运行下面的程序,按程序提示输入n=1,2,3,5,7等数来验证这一结论。
%classic"3n+1"problemfromnumbertheory.
while1
n=input('Entern,negativequits:
');
ifn<=0
break
end
a=n;
whilen>1
ifrem(n,2)==0
n=n/2;
else
n=3*n+1;
end
a=[a,n];
end
a
end
答案
Entern,negativequits:
1
a=
1
Entern,negativequits:
2
a=
21
Entern,negativequits:
3
a=
3105168421
Entern,negativequits:
5
a=
5168421
Entern,negativequits:
7
a=
7221134175226134020105168421
2、编程求满足
的最小m值。
答案
s=0;
form=1:
20
s=s+2^m;
if(s>10000)
break;
end
end
m
输出结果
m=
13
三、思考题
用对分法求解方程
在[0,1]内的解,并验证,在程序中统计出对分次数。
提示:
先将原方程转化成
的形式。
对分法的基本思想是:
一个一元方程f(x)=0,若f(x1)*f(x2)<0,则在[x1,x2]区间内有实数解。
取该区间的中点xm=(x1+x2)/2,判定f(x1)和f(x2)二者中哪一个与f(xm)异号,若f(x1)*f(xm)<0,则解存在的区间缩小为[x1,xm],否则解存在的区间缩小为[xm,x2]。
重复这样的步骤,直到区间的长度小于一个可以接受的小数(比如1e-10),则认为中点即是原方程的解。
;
实验四函数的编写及调试
一、实验目的:
掌握MATLAB函数的编写及调试方法。
二、实验内容:
1、编写一个函数,计算下面函数的值,给出标量x的值,调用该函数后,返回y的值。
function[y]=myfun1(x)
选择一些数据测试你编写的函数。
x=input('Enterthexcoefficient:
');
ifx<=0;
fun=sin(x);
elseifx>0&x<=3;
fun=x;
elsex>3
fun=-x+6;
end
disp(['Thevlaueofthefuntionis:
',num2str(fun)]);
Enterthexcoefficient:
-2
Thevlaueofthefuntionis:
-0.9093
Enterthexcoefficient:
2
Thevlaueofthefuntionis:
2
Enterthexcoefficient:
8
Thevlaueofthefuntionis:
-2
2、编写一个函数求向量x中元素的平均值、最大值、最小值、均方根值。
function[m_x,max_x,min_x,rms_x]=myfun2(x)
方均根值(RootMeanSquare)的计算公式为:
用下面数据测试你写的函数:
(1)x=sin(0:
0.01:
6*pi)
(2)x=rand(1,200),得到的x为200个(0,1)之间均匀分布的随机数。
functiony=myfun2(x)
x=input('x=');
sum_x=sum(x);
[m,n]=size(x);
m_x=sum_x/n;
max_x=max(x);
min_x=min(x);
rms_x=sqrt(sum(x.^2)/n);
disp(['m_x=',num2str(m_x)]);
disp(['max_x=',num2str(max_x)]);
disp(['min_x=',num2str(min_x)]);
disp(['rms_x=',num2str(rms_x)]);
>>x=sin(0:
0.01:
6*pi)
m_x=-1.1256e-007
max_x=1
min_x=-1
rms_x=0.7071
>>x=rand(1,200)
m_x=0.4969
max_x=0.9943
min_x=0.0098613
rms_x=0.57074
3、编写一个函数,给出一个向量
,生成如下范德蒙矩阵。
function[v]=myvander(x)
例如:
>>v=myvander([2345])
得v=
生成一些数据测试你写的函数。
x=input('x=');
v1=vander(x);
v2=v1';
v=flipud(v2);
disp(['vander=']);
disp(v);
输出结果
>>x=(2:
5)
vander=
1111
2345
491625
82764125
三、思考题
编写程序,用如下迭代公式求
,a的值分别为:
3,17,113。
迭代的终止条件为
,迭代初值
迭代次数不超过100次。
分别对迭代结果和准确值进行比较,并统计迭代次数。
a=input('a=');
x=1.0;
fork=1:
100
m=x;
x=x/2+a/(2*x);
ifabs(x-m)<=10^-5
break
end
end
x
n=k
s=(x-sqrt(a))
if(s<=10^-5)
disp('right');
else
disp('error');
end
输出结果
>>a=3
x=
1.73205080756888
n=
5
s=
0
right
>>a=17
x=
4.12310562561781
n=
6
s=
1.447730824111204e-013
right
>>a=113
x=
10.63014581273465
n=
8
s=
0
right
实验五MATLAB的绘图
1、在同一坐标系下绘制下面三个函数在t[0,4]的图象。
t=linspace(0,4*pi,200);
y1=t;
y2=sqrt(t);
y3=4*pi*exp(-0.1*t).*sin(t);
plot(t,y1,'b',t,y2,'g',t,y3,'r')
2、编写程序,选择合适的步距,绘制下面函数在区间[-6,6]中的图象。
x=linspace(-6,6,100);
y=[];
forx0=x
ifx0<=0
y=[y,sin(x0)];
elseifx0<=3
y=[y,x0];
else
y=[y,-x0+6];
end
end
plot(x,y);
axis([-77-24]);
title('分段函数曲线');
text(-3*pi/2,1,'y=sin(x)');
text(2,2,'y=x');
text(4,2,'y=-x+6')
3、用compass函数画下面相量图
ua=1;ub=cos(-2*pi/3)+sin(-2*pi/3)*i;uc=cos(2*pi/3)+sin(2*pi/3)*i;
compass([ua,ub,uc,ua-ub,ub-uc,uc-ua])
ua=1;
ub=cos(-2*pi/3)+sin(-2*pi/3)*i;
uc=cos(2*pi/3)+sin(2*pi/3)*i;
compass([ua,ub,uc,ua-ub,ub-uc,uc-ua])
title('向量图');
4、三维空间曲线绘制
z=0:
0.1:
4*pi;
x=cos(z);
y=sin(z);
plot3(x,y,z)
z=0:
0.1:
4*pi;
x=cos(z);
y=sin(z);
plot3(x,y,z,'rp');
title('三维空间曲线');
text(0,0,0,'origin');
xlabel('X'),ylabel('Y'),zlabel('Z');
grid
5、用mesh或surf函数,绘制下面方程所表示的三维空间曲面,x和y的取值范围设为[-3,3]。
答案
x=-3:
0.1:
3;
[x,y]=meshgrid(x);
z=-x.^2/10+y.^2/10;
mesh(x,y,z);
xlabel('X'),ylabel('Y'),zlabel('Z');
title('立体网状图');
x=-3:
0.1:
3;
[x,y]=meshgrid(x);
z=-x.^2/10+y.^2/10;
surf(x,y,z);
xlabel('X'),ylabel('Y'),zlabel('Z');
title('立体曲面图');
三、思考题
在同一坐标系下,用不同颜色和线型绘制以下两个函数在t[-2,2]范围内的图象。
t=-2*pi:
pi/100:
2*pi;
y1=2.^(0.5*abs(t));
y2=2*exp(-0.2*t);
plot(t,y1,'g');
holdon;
plot(t,y2,'r');
legend('曲线y1','曲线y2');
holdoff;
grid;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 实验指导书 实验 指导书