matlab基础实验.docx
- 文档编号:8964261
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:57
- 大小:628.08KB
matlab基础实验.docx
《matlab基础实验.docx》由会员分享,可在线阅读,更多相关《matlab基础实验.docx(57页珍藏版)》请在冰豆网上搜索。
matlab基础实验
实验一MATLAB基础知识
一、实验目的
1.熟练掌握Matlab的启动与退出;
2.熟悉Matalb的命令窗口,常用命令和帮助系统;
3.熟悉Matalb的数据类型;
4.熟悉Matlab的基本矩阵操作,运算符和字符串处理
二、实验设备
1.方正电脑
2.MATLAB软件
三、实验内容
1.已知矩阵
A=[34-11-910;65074-16;1-47-16-8;2-45-612-8;-36-78-11;8-49130]
写出完成下列操作的命令:
(1)将矩阵A的第2-5行中第1,3,5列元素赋给矩阵B;
(2)删除矩阵A的第7号元素;
(3)将矩阵A的每个元素加上30;
(4)求矩阵A的大小和维数;
(5)将矩阵A的右下角3*2矩阵构成矩阵C;
(6)输出[-5,5]范围内的所有元素;
程序:
A=[34-11-910;65074-16;1-47-16-8;2-45-612-8;-36-78-11;8-49130]
%
(1)
B=A(2:
5,[135])
%
(2)
A2=A;
A2(7)=[]
%(3)
A3=A+30
%(4)
length(A)
size(A)
%(5)
C=A(end-2:
end,end-1:
end)
%(6)
A6=A.*(A>=-5&A<=5)
结果:
A=
34-11-910
65074-16
1-47-16-8
2-45-612-8
-36-78-11
8-49130
B=
604
176
2512
-3-7-1
A2=
Columns1through7
3612-385
Columns8through14
-4-46-4-107
Columns15through21
5-7917-1-6
Columns22through28
81-94612-1
Columns29through35
310-16-8-810
A3=
333429312140
363530373414
312637293622
322635244222
273623382931
382639313330
ans=
6
ans=
66
C=
12-8
-11
30
A6=
34-1100
050040
1-40-100
2-45000
-3000-11
0-40130
2.设x=-74o,y=27o,求
的值。
程序:
x=(-74/180)*pi;
y=(27/180)*pi;
sin(x^2+y^2)/(sqrt(tan(abs(x+y)))+pi)
结果:
ans=
3.当a取-3.0,-2.9,-2.8,…,2.8,2.9,3.0时,求
在各点的函数值。
程序:
a=[-3.0:
0.1:
3.0]
m=exp(-0.3.*a).*sin(a+0.3)
结果:
a=
Columns1through4
Columns5through8
Columns9through12
Columns13through16
Columns17through20
Columns21through24
Columns25through28
Columns29through32
Columns33through36
Columns37through40
Columns41through44
Columns45through48
Columns49through52
Columns53through56
Columns57through60
Column61
m=
Columns1through4
Columns5through8
Columns9through12
Columns13through16
Columns17through20
Columns21through24
Columns25through28
Columns29through32
Columns33through36
Columns37through40
Columns41through44
Columns45through48
Columns49through52
Columns53through56
Columns57through60
Column61
4.已知
求下列表达式的值:
(1)A*B和A.*B
(2)A^3和A.^3
(3)A/B和B\A
(4)[A,B]和[A([1,3]);B^2]
程序:
A=[3542;34-457;879015];
B=[1-267;2874;930];
A*B
A.*B
A^3
A.^3
A/B
A\B
[A,B]
[A([1,3],:
);B^2]
结果;
ans=
1294324197
7-407-1052
40259112489
ans=
3-108134
68-360518
7832700
ans=
-28917240246-4368
137883-25910127669
17133325250438673
ans=
271574648
39304-91125343
6585037290003375
ans=
ans=
ans=
35421-267
34-4572874
879015930
ans=
3542
879015
600183-81
684282726
156825
5.设a=1+2i,b=-3+4i,
求
的值。
程序:
a=1+2*i;
b=3+4*i;
c=exp((pi/6)*i);
c+a*b/(a+b)
结果:
ans=
实验二MATLAB程序设计
一、实验目的
1.学会编写简单函数m文件,调用及调试函数m文件;
2.学会MATLAB的简单程序编写。
二、实验设备
1.方正电脑
2.MATLAB软件
三、实验内容
1.从键盘输入一个4位整数,按如下规则加密后输出。
加密规则:
每位数字都加上7,然后用和除以10的余数取代该数字;然后将第1位数与第3位数交换,第2位数与第4位数交换。
程序:
a=input('请输入一个四位整数:
');
a1=fix(a/1000);%千
a2=rem(fix(a/100),10);%百
a3=rem(fix(a/10),10);%十
a4=rem(a,10);%个
%加密
a1=a1+7;
a2=a2+7;
a3=a3+7;
a4=a4+7;
a1=rem(a1,10);
a2=rem(a2,10);
a3=rem(a3,10);
a4=rem(a4,10);
m=a3*1000+a4*100+a1*10+a2;
ifa3==0
disp(['输出:
','0',num2str(m)])
else
disp(['输出:
',num2str(m)])
end
结果:
请输入一个四位整数:
1234
输出:
0189
2.硅谷公司员工的工资计算方法如下:
(1)工作时数超过120h者,超过部分加发15%;
(2)工作时数低于60h者,扣发700元;
(3)其余按每小时84元计发。
试编程按输入的工号和该员工的工时数,计算应发工资。
程序:
clearall;
clc;
a=input('请输入工号:
');
b=input('请输入工时:
');
if60<=b&b<=120
m=b*84;
end
ifb<60
m=b*84-700;
end
ifb>120
m=(b-120)*84*(1+0.15)+120*84;
end
disp(['工号为',num2str(a),'的员工应发工资',num2str(m),'元'])
结果:
请输入工号:
2453
请输入工时:
24
工号为2453的员工应发工资1316元
3.根据
,求
的近似值。
当n分别取100,1000,10000时,结果是多少?
(要求:
分别用循环结构和向量运算(使用sum函数)来实现)
程序
(1):
clc;;
clearall;
n=input('输入n:
');
v=0;
fori=1:
n
v=[v,1/(i^2)];
end
m=sum(v);
disp(sqrt(6*m))%pi的近似值
结果:
输入n:
1000
程序
(2):
clc;
clearall;
n=input('输入n:
');
v=0;
fori=1:
n
v=v+1/(i^2);
end
disp(sqrt(6*v))%pi的近似值
结果:
输入n:
1000
4.根据
,求
(1)y<3时的最大n值;
(2)与
(1)的n值对应的y值。
考虑
程序:
clc;
clearall;
y=0;
n=0;
while(y<=3)
n=n+1;
y=y+1/(2*n-1);
end
y=y-1/(2*n-1);
n=n-1;
disp(['y<3时的最大的n=',num2str(n)]);
disp(['y=',num2str(y)]);
结果:
y<3时的最大的n=56
5.考虑一下迭代公式
,其中,a,b为常数。
(1)编写程序求迭代结果,迭代的终止条件为
,迭代初值
,迭代次数不超过500次。
(2)如果迭代过程收敛于r,那么r的准确值是
,当(a,b)的值取(1,1)、(8,3)、(10,0.1)时,分别对迭代结果和准确值进行比较。
程序:
clc;
clearall;
a=input('请输入正数a:
');
b=input('请输入正数b:
');
n=0;%迭代次数
x=1.0;%初值
xl=1.0;
while(n<=499)
x=a/(b+x);
n=n+1;
h=abs(x-xl);
ifh<=10^(-5)
o=1;
break;
end
xl=x;
end
disp(['x=',num2str(x)]);
disp(['n=',num2str(n)]);
m=(-b+sqrt(b^2+4*a))/2
结果:
请输入正数a:
123
请输入正数b:
134
n=3
m=
实验三图形绘制
一、实验目的
1.加深认识二维、三维绘图函数plot,plot3,mesh,surf;
2.要求熟练掌握以上绘图函数的用法、简单图形标注、简单颜色设定等。
二、实验设备
1.方正电脑
2.MATLAB软件
三、实验内容
1.绘制下列曲线
(1)
程序:
x=-100:
0.01:
100;
y=x-x.^3/(3*2*1);
plot(y)
结果:
(2)
程序:
x=-10:
0.01:
10;
y=(1/2*pi)*exp(-x/2);
plot(y);
结果:
(3)
程序:
t=0:
0.01:
10*pi;
x=8*sin(t);
y=(8*cos(t))/(sqrt
(2));
plot(x,y)
结果:
(4)
程序:
t=0:
0.01:
10*pi;
x=t.*sin(t);
y=t.*cos(t);
plot(x,y)
2.已知
,完成下列操作:
(1)在同一坐标系下用不同的颜色和线形绘制两条曲线,给曲线添加文字说明;
程序:
x1=-pi/2:
0.01:
pi/2;
y1=2*x1-0.5;
t=0:
0.01:
pi;
x2=sin(3*t).*cos(t);
y2=sin(3*t).*sin(t);
plot(x1,y1,'b:
',x2,y2,'m');
text(1.0,1.5,'y=2x-0.5');
text(0.5,-0.5,'x=sin(3t)cos(t)')
text(0.5,-1,'y=sin(3t)sin(t)')
结果:
(2)以子图形式,分别用条形图和散点图绘制两条曲线,并为各子图添加函数标题。
程序:
subplot(2,2,[13]);
x1=-1:
0.01:
1;
y1=2*x1-0.5;
bar(x1,y1);
gridon;
title('条形图,y=2x-0.5')
subplot(2,2,4);
t=0:
0.01:
pi;
x2=sin(3*t).*cos(t);
y2=sin(3*t).*sin(t);
scatter(x2,y2);
title('散点图,x=sin(3t)cos(t),y=sin(3t)sin(t)')
gridon;
结果:
3.设
,在同一窗口采用子图的形式绘制条形图、阶梯图、杆图和对数坐标图。
程序:
t=-pi:
0.01:
pi;
y=1./(1+exp(-t));
subplot(2,2,1);
bar(t,y);
title('条形图,y=1/(1+exp(-t)),[-pi,pi]');
subplot(2,2,2);
stairs(t,y)
title('阶梯图,y=1/(1+exp(-t)),[-pi,pi]');
subplot(2,2,3);
stem(t,y);
title('杆图,y=1/(1+exp(-t)),[-pi,pi]');
subplot(2,2,4);
loglog(t,y);
title('对数坐标图,y=1/(1+exp(-t)),[-pi,pi]');
结果:
4.绘制下列极坐标图
(1)
程序:
theta=-10*pi:
0.01:
10*pi;
rho=5*theta+4;
polar(theta,rho);
结果:
(2)
程序:
a=1;
fai=0:
0.01:
2*pi;
r=a*(1+cos(fai));
polar(fai,r)
结果:
5.应用MATLAB三维曲线和图形绘制语句,绘制下列函数的图形:
(1)
。
程序:
t=0:
0.01:
2*pi;
x=exp(-t/20).*cos(t);
y=exp(-t/20).*sin(t);
z=t;
plot3(x,y,z);
gridon
(2)
,
程序:
x=-3:
0.01:
3;
y=-3:
0.01:
3;
z=3*(1-x).^2.*exp(-x.^2-(y+1).^2)-10*(x/5-x.^3-y.^5).*exp(-x.^2-y.^2)-1/3.*exp(-(x+1).^2-y.^2);
plot3(x,y,z);
gridon;
结果:
实验四线性代数中的数值运算
一、实验目的
1.通过实验能让学生加深认识冒号、逗号、分号及字母大小写在MATLAB中的区别;
2.能够对数值矩阵进行简单操作;
3.熟悉Matlab的矩阵元素运算;
4.能够熟练掌握MATLAB的数值运算功能。
二、实验设备
1.方正电脑
2.MATLAB软件
三、实验内容
1.试产生5阶帕斯卡矩阵P和5阶希尔伯特矩阵H,且求其行列式Dp,Dh以及它们的条件数Kp,Kh,判断哪个矩阵的性能更好些?
为什么?
程序:
P=pascal(5)
H=hilb(5)
Dp=det(P)
Dh=det(H)
Kp=cond(P)
Kh=cond(H)
ifabs(Kp-1) disp('因为P矩阵的条件数比H矩阵的条件数更接近1,所以P矩阵的性能要好于H矩阵') else disp('因为H矩阵的条件数比P矩阵的条件数更接近1,所以H矩阵的性能要好于P矩阵') end 结果: P= 11111 12345 1361015 14102035 15153570 H= Dp= 1 Dh= Kp= 8.5175e+003 Kh= 4.7661e+005 因为P矩阵的条件数比H矩阵的条件数更接近1,所以P矩阵的性能要好于H矩阵 2.求下列矩阵的主对角元素、上三角阵、下三角阵、秩、范数、条件数和迹: (1) (2) 程序: a=[1-1223;0933;7-502;23683]; b=[3pi/245;32-76sqrt(37);5724.5*10^(-4);exp (2)097]; Da=diag(a) Aupa=triu(a) Adowna=tril(a) ra=rank(a) nva=norm(a) kaa=cond(a) taa=trace(a) Db=diag(b) Aupb=triu(b) Adownb=tril(b) rb=rank(b) nvb=norm(b) kab=cond(b) tab=trace(b) 结果: Da= 1 9 0 3 Aupa= 1-1223 0933 0002 0003 Adowna= 1000 0900 7-500 23683 ra= 4 nva= kaa= taa= 13 Db= Aupb= 000 Adownb= 3.000000 32.0000-76.00000 rb= 3 nvb= kab= tab= 3.求矩阵A的特征值和对应的特征向量,并验证其数学意义。 程序: a=[3110;-4-10;4-8-2]; [V,D]=eig(a) 结果: V= D= -2.000000 0-0.87450 验证其数学意义: a*V ans= V*D ans= 即a*V=V*D 4.分别用矩阵求逆、左除运算符、矩阵分解等方法求解下列三对角方程组Ax=b,并分析程序的执行时间。 其中 程序: a=[2-1000;-12-100;0-12-10;00-12-1;000-12]; b=[1;0;0;0;0]; tic x2=a\b; toc tic x1=inv(a)*b; toc tic [L,U]=lu(a); x3=U\(L\b); toc x1=x1' x2=x2' x3=x3 结果: Elapsedtimeis0.000000seconds. Elapsedtimeis0.000000seconds. Elapsedtimeis0.000000seconds. x1= x2= x3= 5.将上面第4题的方程组Ax=b,运用稀疏矩阵的方式,分别用矩阵求逆、左除运算符、矩阵分解等方法求解,并对运算过程和执行结果进行比较。 程序: a=[2-1000;-12-100;0-12-10;00-12-1;000-12]; s=sparse(a); b=[1;0;0;0;0]; s=sparse(b); tic x2=a\b; toc tic x1=inv(a)*b; toc tic [L,U]=lu(a); x3=U\(L\b); toc x1=x1' x2=x2' x3=x3' 结果: Elapsedtimeis0.000000seconds. Elapsedtimeis0.000000seconds. Elapsedtimeis0.000000seconds. x1= x2= x3= 实验五数据处理与多项式计算 一、实验目的 1.通过实验能让学生加深认识数据处理与多项式计算方法; 2.能够对数值矩阵进行简单数理统计和多项式计算操作; 3.能够熟练掌握MATLAB的统计运算功能。 二、实验设备 1.方正电脑 2.MATLAB软件 三、实验内容 1.利用MATLAB提供的rand函数生成30000个符合均匀分布的随机数,然后检验随机数的性质。 (1)均值和标准方差; (2)最大元素和最小元素; (3)大于0.5的随机数个数占总数的百分比。 程序: a=rand(30000,1); disp('平均值'); mean(a) disp('标准方差'); std(a) disp('最大元素'); max(a) disp('最小元素'); min(a) disp('大于0.5的随机数个数占总数的百分比'); sum(a>0.5)/30000 结果: 平均值 ans= 标准方差 ans= 最大元素 ans= 最小元素 ans= ans= 2.在某处测得海洋不同深度处水温数据表5.6所示。 用插值法求出水深500m、900m和1500m处的水温(ºC)。 表5.6海洋水温观测值 水深(m) 466 715 950 1422 1635 水温(ºC) 程序: h=[466,715,950,1422,1635]; t=[7.04,4.28,3.40,2.52,2.13]; x=[500,900,1500] interp1(h,t,x,'spline') 结果: ans= 3
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 基础 实验