Matlab编程实验报告.docx
- 文档编号:24051405
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:43
- 大小:348.83KB
Matlab编程实验报告.docx
《Matlab编程实验报告.docx》由会员分享,可在线阅读,更多相关《Matlab编程实验报告.docx(43页珍藏版)》请在冰豆网上搜索。
Matlab编程实验报告
中北大学
Matlab编程实验报告
班级:
姓名:
学号:
39
2013年11月
2,实验一Matlab运算基础
一、实验目的
1、熟悉启动和退出MATLAB的方法。
2、熟悉MATLAB工作窗口的组成。
3、掌握建立矩阵的方法,矩阵分析与处理。
4、掌握MATLAB各种表达式的书写规则以及常用函数的使用。
二、实验内容
1.先求下列表达式的值,然后显示MATLAB工作空间的使用情况并保存全部变量。
(1)
z1=2*sin(85*pi/180)/(1+exp
(2))
z1=
(2)
,其中
x=[2,1+2*i;,5]
x=
+
z2=1/2*log(x+sqrt(1+x*x))
z2=
-+
+-
(3)
提示:
利用冒号表达式生成a向量,求各点的函数值时用点乘运算。
a=:
:
a=
Columns1through9
Columns10through18
Columns19through27
Columns28through36
0
Columns37through45
Columns46through54
Columns55through61
>>z3=(exp.*a)-exp.*a))/2.*sin(a+
z3=
Columns1through9
Columns10through18
Columns19through27
Columns28through36
0
Columns37through45
Columns46through54
Columns55through61
(4)
,其中t=0:
:
提示:
用逻辑表达式求分段函数值。
t=0:
:
;
z4=(t>=0&t<1).*(t.*t)+(t>=1&t<2).*(t.*t-1)+(t>=2&t<3).*(t.*t-2.*t-1)
z4=
00
2.已知
,
求下列表达式的值:
(1)A+6.*B和A-B+I(其中I为单位矩阵)。
(2)A*B和A.*B。
(3)A^3和A.^3。
(4)A/B和B\A。
(5)[A,B]和[A([1,3],:
);B^2]。
A=[1234-4;34787;3657];
B=[13-1;203;3-27];
z1=A+6.*B
z1=
1852-10
467105
215349
C=eye(3);
z2=A-B+C
z2=
1231-3
32884
0671
z3=A*B
z3=
684462
309-72596
154-5241
z4=A.*B
z4=
121024
680261
9-13049
z5=A^3
z5=
3722623382448604
247370149188600766
78688454142118820
z6=A.^3
z6=
172839304-64
39304343658503
27274625343
z7=A/B
z7=
z8=B\A
z8=
z9=[A,B]
z9=
1234-413-1
34787203
36573-27
z10=[A([1,3],:
);B^2]
z10=
1234-4
3657
451
11019
20-540
3.设有矩阵A和B
,
(1)求它们的乘积C。
(2)将矩阵C的右下角3×2子矩阵赋给D
(3)查看MATLAB工作空间使用情况。
A=[12345;678910;1112131415;1617181920;2122232425];
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
whos
NameSizeBytesClassAttributes
A5x5200double
B5x3120double
C5x3120double
D3x248double
4.完成下列操作:
(1)求[100,999]之间能被21整除的数的个数。
提示:
先利用冒号表达式,再利用find和length函数。
>>A=100:
999;
>>B=find(mod(A,21)==0)
B=
Columns1through16
627486990111132153174195216237258279300321
Columns17through32
342363384405426447468489510531552573594615636657
Columns33through43
678699720741762783804825846867888
>>C=length(B)
C=
43
>>
(2)建立一个字符串向量,删除其中的大写字母。
>>X='LIsaisABeAutifulGirl';
>>Y=find(X>='A'&X<='Z')
Y=
129111321
>>X(Y)=[]
X=
saiseutifulirl
提示:
利用find函数和空矩阵。
5.由指令A=rand(3,5)生成二维数组A,试求该数组中所有大于的元素的位置,分别求出它们的“全下标”和“单下标”。
(提示:
find和sub2ind)
>>A=rand(3,5)
A=
Columns1through4
Column5
>>K=find(A>
K=
1
2
3
4
8
10
12
[C,D]=ind2sub(size(A),K)
C=
1
2
3
1
2
1
3
D=
1
1
1
2
3
4
4
>>
6.先运行clear,formatlong,A=rand(3,3),然后根据A写出两个矩阵:
一个对角阵B,其相应元素由A的对角元素构成;另一个矩阵C,其对角元素全为0,而其余元素与对应的A阵元素相同。
(提示:
diag)
>>clear
>>formatlong
>>A=rand(3,3)
A=
>>b=diag(A)
b=
>>B=diag(b)
B=
00
00
00
>>C=A-B
C=
0
0
0
>>
三、实验报告及要求
实验报告给出详细的实验过程、代码以及实验结果,必要时按照实验任务要求对结果进行分析。
实验二多项式及字符运算
一、实验目的
1、掌握多项式的表示与创建方法。
2、掌握多项式的四则运算以及多项式求根方法。
3、掌握字符串数组的创建及操作方法。
二、实验内容
1、已知
,分别取
和一个
矩阵,求
在
处的值。
>>p=[2-103];
>>x=2;
>>y=polyval(p,x)
y=
15
>>x1=[12;34];
>>y1=polyval(p,x1)
y1=
415
48115
2、有3个多项式
试进行下列操作:
求
=
+
。
(1)求
的根。
>>p1=[12405];
>>p2=[12];
>>p3=[123];
>>R=conv(p2,p3)
R=
1476
>>p4=[01476];
p5=p1+p4
p5=
138711
>>r=roots(p5)
r=
+
-
+
-
>>
(2)当x取矩阵A的每一元素时,求P(x)的值。
其中
>A=[-1;2;05];
>>y=polyval(p5,A)
y=
+003*
>>
(3)当以矩阵A为自变量时,求P(x)的值。
其中A的值与(3)相同。
X=A
X=
0
>>Y=X^4+3*X^3+8*X^2+7*X^1+11
Y=
+003*
3.用两种方法建立如下的二维字符串数组:
第一行为“Matlab编程”,第二行为“实验环节”,最后利用该二维字符串形成一个一行字符串数组,“Matlab编程实验环节”>>A=['Matlab编程';'实验环节']
A=
Matlab编程
实验环节
>>B=str2mat('Matlab编程','实验环节')
B=
Matlab编程
实验环节
>>C=[B(1,:
),B(2,:
)]
C=
Matlab编程实验环节
三、实验报告及要求
实验报告给出详细的实验代码以及实验结果,必要时按照实验任务要求对结果进行分析。
实验三Matlab符号计算
一、实验目的
1、熟练掌握MATLAB符号表达式的创建
2、熟练掌握符号表达式的代数运算
3、掌握符号表达式的化简和替换
4、熟练掌握符号微积分
5、熟练掌握符号方程的求解
二、实验内容
1.创建符号表达式:
。
(用两种方式分别创建)
>>f=sym('a*x^3+b*x^2+c*x+d')
f=
a*x^3+b*x^2+c*x+d
symsabcd
>>f=a*x^3+b*x^2+c*x+d
f=
a*x^3+b*x^2+c*x+d
2.创建符号矩阵。
>>A=sym('[a*cos(x)+b*sin(y)10+20;a*x^2+b*y^2+c*z^2sqrt(t*t+1)]')
A=
[a*cos(x)+b*sin(y),30]
[a*x^2+b*y^2+c*z^2,(t^2+1)^(1/2)]
3.已知表达式
,计算当
时
的值;计算
与
的复合函数,
、
的逆函数。
f=1-sin(x)*sin(x);
>>x=1
x=
1
>>subs(f)
ans=
>f=sym('1-sin(x)*sin(x)');
>>g=sym('2*x+1');
>>compose(f,g)
ans=
1-sin(2*x+1)^2
>>finverse(f)
Warning:
finverse(1-sin(x)^2)isnotunique.
ans=
asin((1-x)^(1/2))
>>finverse(g)
ans=
x/2-1/2
>>
4.符号函数
,分别对
、
、
、
进行微分,对
趋向于1求极限,并计算对
的二次、三次微分,用findsym得出符号变量。
symsxyabcd
f=a*x^3+b*y^2+c*y+d;
>>A=diff(f,x)
A=
3*a*x^2
>>B=diff(f,y)
B=
c+2*b*y
>>C=diff(f,c)
C=
y
>>D=diff(f,d)
D=
1
>>L=limit(a*x^3+b*y^2+c*y+d,y,1)
L=
a*x^3+b+c+d
>E=diff(f,x,2)
E=
6*a*x
>>F=diff(f,x,3)
F=
6*a
>>findsym(E)
ans=
a,x
>>findsym(F)
ans=
a
>>
>>
5.求极限
。
symsn;
L=limit(symsum(1/2^n,n,0,inf),n,inf)
L=
2
6.求定积分
和不定积分
。
symsx;
>>f=sqrt(x)/(1+x)^2;
>>int(f,x,1,inf)
ans=
pi/4+1/2
>>symsxy;
>>q=x*exp(-x*y);
I=int(q)
I=
-(x*y+1)/(y^2*exp(x*y))
>>S=int(I)
S=
(x*y+2)/(y^3*exp(x*y))
>>
7.求微分方程
在满足
,
的解。
y=dsolve('D2y+2*Dy+2*y','y(0)=1','Dy(0)=0','x')
y=
cos(x)/exp(x)+sin(x)/exp(x)
8.求解微分方程组
[x,y]=dsolve('Dx=2*x+3*y','Dy=x-2*y','x(0)=1','y(0)=2','t')
x=
(exp(7^(1/2)*t)*(2*7^(1/2)-3))/2-(2*7^(1/2)+3)/(2*exp(7^(1/2)*t))+(7^(1/2)*exp(7^(1/2)*t)*(2*7^(1/2)-3))/7+(7^(1/2)*(2*7^(1/2)+3))/(7*exp(7^(1/2)*t))
y=
(7^(1/2)*exp(7^(1/2)*t)*(2*7^(1/2)-3))/14+(7^(1/2)*(2*7^(1/2)+3))/(14*exp(7^(1/2)*t))
>>,其中
9.解微分方程
的通解。
>
>y=dsolve('Dy+y*tanx=cosx','x')
y=
(cosx-C11/exp(tanx*x))/tanx
10、求解方程组
[x,y,z]=solve('x+2*y-z=7','x+z=3','x^2+3*y^2=28','x','y','z')
x=
15/4-37^(1/2)/4
37^(1/2)/4+15/4
y=
37^(1/2)/4+5/4
5/4-37^(1/2)/4
z=
37^(1/2)/4-3/4
-37^(1/2)/4-3/4
三、实验报告及要求
实验报告给出详细的实验代码以及实验结果,必要时标注代码注释,并按照实验任务要求对结果进行分析。
实验四选择结构程序设计
一、实验目的
1、掌握建立和执行M文件的方法。
2、掌握利用if语句实现选择结构的方法。
3、掌握利用switch语句实现多分支选择结构的方法。
4、掌握try语句的使用。
二、实验内容
1.求下列分段函数的值。
要求:
用if语句实现,分别输出x=,,,,,,时的y值。
提示:
x的值从键盘输入。
请输入x的值:
-5
x=
-5
y=
14
请输入x的值:
-3
x=
-3
y=
11
请输入x的值:
1
x=
1
y=
2
请输入x的值:
2
x=
2
y=
1
请输入x的值:
x=
y=
请输入x的值:
3
x=
3
y=
5
请输入x的值:
5
x=
5
y=
6
2.输入一个百分制成绩,要求输出成绩等级A,B,C,D,E。
其中90~100分为A,80~89分为B,70~79分为C,60~69分为D,60分以下为E。
要求:
(1)用switch语句实现。
(2)输入百分制成绩后要判断该成绩的合理性,对不合理的成绩应输出错误信息。
(1)
请输入成绩:
61
grade=
61
rate=
D
请输入成绩:
54
grade=
54
rate=
E
请输入成绩:
87
grade=
87
rate=
B
请输入成绩:
78
grade=
78
rate=
C
(2)
请输入成绩:
103
grade=
103
成绩无效
3、建立5×6矩阵,要求输出矩阵第n行元素。
当n值超过矩阵的行数时,自动转为输出矩阵最后一行元素,并给出出错信息。
请输入行数n:
2
n=
2
356789
请输入行数n:
6
n=
6
468903
ans=
Indexexceedsmatrixdimensions.
三、实验报告及要求
实验报告给出详细的实验代码以及实验结果,必要时按照实验任务要求对结果进行分析。
实验五循环结构程序设计
一、实验目的
1、掌握利用for语句实现循环结构的方法。
2、掌握利用while语句实现循环结构的方法。
3、熟悉利用向量运算来代替循环操作的方法。
二、实验内容
1.根据
,求
的近似值。
当n分别取100、1000、10000时,结果是多少
要求:
分别用循环结构和向量运算(使用sum函数)来实现。
(1)
请输入n值;100
n=
100
s=
请输入n值;1000
n=
1000
s=
请输入n值;10000
n=
10000
s=
(2)
请输入n值;100
n=
100
s=
请输入n值;1000
n=
1000
s=
请输入n值;10000
n=
10000
s=
2.根据.
,求:
(1)y<3时的最大n值。
(2)与
(1)的n值对应的y值。
3.已知
求
中:
(1)最大值、最小值、各数之和。
f
(1)=1;f
(2)=0;f(3)=1;
forn=4:
100
f(n)=f(n-1)-2*f(n-2)+f(n-3);
end
A=max(f)
B=min(f)
C=sum(f)
length(find(f>0))
length(find(f==0))
length(find(f<0))
(2)正数、零、负数的个数。
A=
+011
B=
+011
C=
+011
ans=
49
ans=
2
ans=
49
>>
4.若两个连续自然数的乘积减1是素数,则称这两个连续自然数是亲密数对,该素数是亲密素数。
求[2,50]区间内:
(1)亲密数对的对数;
forn=2:
50
f(n-1)=n*(n+1)-1;
end
b=isprime(f);
c=find(b>0)
length(c)
sum(f(c))
ans=
29
(2)与上述亲密数对对应的所有亲密素数之和。
ans=
23615
三、实验报告及要求
实验报告给出详细的实验代码以及实验结果,必要时按照实验任务要求对结果进行分析。
实验六绘图操作
一、实验目的
1、掌握图形对象属性的基本操作。
2、掌握利用图形对象进行绘图操作的方法。
3、掌握绘制二维图形的常用函数。
4、掌握绘制三维图形的常用函数。
二、实验内容
1、先利用缺省属性绘制曲线
,然后通过图形句柄操作来改变曲线的颜色、线型和线宽,并利用文字对象给曲线添加文字标注
。
x=0:
:
10;
>>y=x.^2.*exp(2.*x);
>>hf=plot(x,y);
>>set(hf,'color','r','linestyle',':
','marker','*','linewidth',1);
>>text(0,0,'y=x^2.*exp(2*x)','Fontsize',15);
>>
2、已知
完成下列操作:
(1)在同一坐标系下用不同的颜色和线型绘制三条曲线。
x=0:
:
10;
y1=x.^2;y2=cos(2.*x);y3=y1.*y2;
>>hf=plot(x,y1,'color','r','linestyle',':
');
>>holdon
>>hf=plot(x,y2,'color','g','linestyle','-');
>>hf=plot(x,y3,'color','b','linestyle','-.');
>>
(3)以子图形式绘制3条曲线。
x=0:
:
10;
y1=x.^2;y2=cos(2.*x);y3=y1.*y2;
x=0:
:
10;
y1=x.^2;y2=cos(2.*x);y3=y1.*y2;
subplot(3,1,1),plot(x,y1,'color','r','linestyle',':
');
subplot(3,1,2),plot(x,y2,'color','g','linestyle','-');
subplot(3,1,3),plot(x,y3,'color','b','linestyle','-.');
3、已知6 x=7: 29;y=16: 35; >>[x,y]=meshgrid(x,y); >>z=2*x+5*y; >>k=find(z==126); >>x(k),y(k) ans= 8 13 18 23 ans= 22 20 18 16 在做本题前,先分析并上机验证下列命令的执行结果,从中体会产生网络坐标矩阵的方法。 [x,y]=meshgrid(-1: : 2,1: 5) 4、在一幅图上打印出函数sin(x)和cos(x)在[0,2]区间上的图形,要求如下 1)sin(x)和cos(x)图形分别用红色的点划线和绿色星号打印; 2)坐标轴的窗口大小范围设为[-1,7][; 3)分别给x轴和y轴加上标注说明,图形加上名称; 4)给出图例说明标注; 5)在(,)处标上文字‘sin(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Matlab 编程 实验 报告