matlab实验西北农林科技大学.docx
- 文档编号:25378056
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:20
- 大小:289.09KB
matlab实验西北农林科技大学.docx
《matlab实验西北农林科技大学.docx》由会员分享,可在线阅读,更多相关《matlab实验西北农林科技大学.docx(20页珍藏版)》请在冰豆网上搜索。
matlab实验西北农林科技大学
课程实验报告
学年学期 2015-2016学年第2学期
课程名称 MATLAB与科学计算
实验名称 实验一MATLAB环境与数值计算
实验室 测量测绘实验中心计算机室
专业年级 土木13级
学生姓名
学生学号 20130
提交时间2016-06-02
成 绩
任课教师 王增红
水利与建筑工程学院
实验一MATLAB环境与数值计算
1、目的和要求
(1)熟练掌握MATLAB的启动和退出、MATLAB的命令窗口;常用选单和工具栏,通过实例初步认识对MATLAB的命令和程序运行等。
(2)熟练掌握MATLAB变量的使用;
(3)熟练掌握矩阵的创建、掌握MATLAB的矩阵和数组的运算;
(4)熟悉MATLAB多项式的运用,掌握MATLAB的拟合和插值方法、积分运算和统计运算。
2、内容和步骤
参见教材实验一、二。
3、实验报告提交要求
(1)用MALTAB命令和M程序两种方式求解三元一次方程组。
答:
以求解三元一次方程组
为例:
MALTAB命令
>>a=[2-13;31-5;4-11];
>>b=[5;5;9];
>>x=a\b
x=
2
-1
0
M程序
a=[2-13;31-5;4-11];
b=[5;5;9];
x=a\b
运行结果:
x=
2
-1
0
(2)用MALTAB命令和M程序两种方式求解3×3复数矩阵的模和相角。
答:
MALTAB命令
>>a=fix(20*rand(3,3))
a=
16185
181210
2119
>>b=magic(3);
>>A=a+b*I;
>>r=abs(A)
r=
17.888518.02787.8102
18.248313.000012.2066
4.47219.055419.1050
>>theta=angle(A)*180/pi
theta=
26.56513.179850.1944
9.462322.619934.9920
63.434983.65986.0090
M程序
a=fix(20*rand(3,3))
b=magic(3);
A=a+b*i;
r=abs(A)
theta=angle(A)*180/pi
运行结果:
a=
15013
191615
131814
r=
17.00001.000014.3178
19.235416.763116.5529
13.601520.124614.1421
theta=
28.072590.000024.7751
8.972617.354025.0169
17.102726.56518.1301
(3)创建一个4╳4矩阵,求逆矩阵、产生对角矩阵、求矩阵的秩等。
>>a=fix(20*rand(4,4))
a=
12610
101133
1591512
18065
>>ni=inv(a)
ni=
-0.00540.0251-0.02940.0664
-0.00790.08630.0074-0.0536
-0.1375-0.11740.1740-0.0722
0.18460.0507-0.10290.0474
>>duijiao=diag(a)
duijiao=
1
11
15
5
>>zhi=rank(a)
zhi=
4
(4)创建两个4╳4矩阵进行加、减、乘法和左除运算。
>>a=fix(10*rand(4,4)+1)
a=
3723
8929
31033
66910
>>b=fix(10*rand(4,4)+1)
b=
4568
24104
3936
7681
>>a-b
ans=
-12-4-5
65-85
010-3
-1019
>>a+b
ans=
712811
10131213
61969
13121711
>>a*b
ans=
537911867
119148216121
6210015185
133195203136
>>a\b
ans=
14.0000-5.000020.000028.0000
-2.13701.6438-3.0822-3.7397
5.4110-0.93156.24669.2192
-11.28773.4521-14.9726-22.7534
(5)创建一个一元四次多项式,进行多项式求值,求根计算。
解:
以函数y=5
+4
+3
+2x+1为例:
>>p=[5,4,3,2,1]
p=
54321
>>p=[5,4,3,2,1];
>>polyval(p,3)%计算x=3时多项式的值
ans=
547
>>roots(p)%计算多项式的根
ans=
0.1378+0.6782i
0.1378-0.6782i
-0.5378+0.3583i
-0.5378-0.3583i
(6)创建一个一元三次多项式,取十个不同自变量值,计算多项式的值,并分别进行一阶、二阶拟合,图示原始数据和拟合结果
解:
>>p=fix(10*rand(1,4)+1)
p=
7785
>>x=1:
2:
20;
>>y=polyval(p,x);
>>p1=polyfit(x,y,1);p2=polyfit(x,y,2);
>>y1=polyval(p1,x);y2=polyval(p2,x);
>>plot(x,y1,'r')
>>holdon
>>plot(x,y2)
(7)自建一个一元三次多项式,取十个不同自变量值,计算多项式的值,并用线性、相邻点和三次插值,图示其插值结果。
解:
>>p=fix(10*rand(1,4)+1)
p=
7136
>>x=1:
3:
30;
>>y=polyval(p,x);
>>y01=interp1(x,y,12)%线性插值
y01=
12774
>>y02=interp1(x,y,12,'nearest')%相邻点插值
y02=
15593
>>y03=interp1(x,y,12,'cubic')%三次插值
y03=
1.2310e+004
>>plot(x,y)
>>holdon
>>plot(12,y01,'or')
>>plot(12,y02,'*g')
>>plot(12,y03,'+')
(8)给出多组温度的测定值(内含平均温度、最低、最高温度),并求其平均温度、最低、最高温度的平均值、标准差等。
解:
>>a=fix(40*rand(6,3)+1)
a=
393228
203931
332730
6216
173427
37387
>>mean(a)%各列的平均值
ans=
25.333328.666723.1667
>>std(a)%各列的标准差
ans=
13.063913.76479.5795
课程实验报告
学年学期 2015-2016学年第2学期
课程名称 MATLAB与科学计算
实验名称 实验二MATLAB的符号计算与可视化
实验室 测量测绘实验中心计算机室
专业年级 土木13级
学生姓名
学生学号
提交时间2016-06-02
成 绩
任课教师 王增红
水利与建筑工程学院
实验二MATLAB的符号计算与可视化
1、目的和要求
(1)熟练掌握MATLAB符号表达式的创建、代数运算及化简。
(2)熟悉符号方程的求解。
(3)熟练掌握MATLAB二维曲线、三维图形的绘制。
(4)熟练掌握各种特殊图形的绘制。
2、内容和步骤
参见教材实验三、四。
3、实验报告提交要求
(1)使用sym和syms命令创建符号变量和符号表达式;
sym命令
>>sym('x','real')
ans=
x
>>sym('y=3*x^8+7*x^6+x+1')
ans=
y=3*x^8+7*x^6+x+1
syms命令
>>symsxyreal
>>yy=x+i*y^3
yy=
y^3*i+x
(2)用常数替换符号变量。
解:
>>symsxy
>>z=x^6+y^5+x*y
z=
x^6+x*y+y^5
>>subs(z,x,5)%用5替换了x
ans=
y^5+5*y+15625
(3)寻找两个一元三次符号表达式,分别进行其符号表达式的加、减、乘等运算;
两个一元三次符号表达式
>>y1=sym('3*x^3+2*x^2+x+10')
y1=
3*x^3+2*x^2+x+10
>>y2=sym('5*x^3+3*x^2+x+20')
y2=
5*x^3+3*x^2+x+20
加、减、乘运算
>>y1+y2%符号表达式相加
ans=
8*x^3+5*x^2+2*x+30
>>y1-y2%符号表达式相减
ans=
-2*x^3-x^2-10
>>y1*y2%符号表达式相乘
ans=
(3*x^3+2*x^2+x+10)*(5*x^3+3*x^2+x+20)
(4)寻找一个可化简的符号表达式,并化简;
解:
>>y=sym('x^7+x^5+1')
y=
x^7+x^5+1
>>factor(y)
ans=
(x^2+x+1)*(x^5-x^4+x^3-x+1)
(5)绘制二维曲线,寻找四种二维的曲线,把图形窗口分割为2列2行,并分别标明图名、坐标等。
解:
M文件
x=-2*pi:
0.01:
2*pi;
subplot(221)
plot(x,sin(x))
title('y=sin(x)')
xlabel('x')
ylabel('y')
subplot(222)
plot(x,cos(x))
title('y=cos(x)')
xlabel('x')
ylabel('y')
subplot(223)
plot(x,x.^2)
title('y=x^2')
xlabel('x')
ylabel('y')
subplot(224)
plot(x,exp(x))
axis([-5,5,0,12])
title('y=e^x')
xlabel('x')
ylabel('y')
(6)绘制特殊图形。
参照教材中相关内容,选取不同的数据绘制三维条形图;
M文件
y=fix(50*rand(4,3)+1)
x=2:
5
bar3(x,y)
(7)随机产生正态分布的数据100个,给出统计数据,并绘制饼状图。
解:
M文件
a=fix(100*randn(10,10))
s1=0;s2=0;s3=0;s4=0;
forn=1:
100
ifa(n)<=-100
s1=s1+1;
elseifa(n)<=0
s2=s2+1;
elseifa(n)<100
s3=s3+1;
else
s4=s4+1;
end
end
y=[s1,s2,s3,s4]
explode=[1111];
pie(y,explode,{'(<=-100)','(-99~0)','(1~99)','(>=100)’})
注:
所有题目要求不同的学生采用不同的符号数字,报告中应列明命令或M文件及结果,(5)~(7)题要求用M文件表达。
课程实验报告
学年学期 2015-2016学年第2学期
课程名称 MATLAB与科学计算
实验名称 实验三MATLAB程序设计
实验室 测量测绘实验中心计算机室
专业年级 级
学生姓名
学生学号 1
提交时间2016-06-02
成 绩
任课教师 王增红
水利与建筑工程学院
实验三MATLAB程序设计
1、目的和要求
(1)熟练掌握MATLAB的程序流程控制结构。
(2)熟练掌握M文件的结构。
(3)熟练掌握函数调用和参数传递。
2、内容和步骤
参见教材实验五。
3、实验报告提交要求
用for语句、while和函数调用三种方式分别对下述两题进行编程,并上机进行操作、运行出结果。
(1)
n≥30即可
While语句:
functioncos234(x,n)
f=1;sum=1;i=1;
whilei<=n
f=f*(-1)*x^2/(2*i-1)/(2*i);
sum=sum+f;
i=i+1;
end
sum
结果:
>>cos234(pi,30)
sum=
-1
函数调用
functionz=cos123(x,n)
y=1;
form=1:
n
y=y+(-1)^m*x^(2*m)/jiecheng(2*m);
end
y
functions=jiecheng(n)
s=1;
fori=1:
n
s=i*s;
end
结果:
>>cos123(pi,32)
y=
-1.0000
For语句
functionz=cos222(x,n)
y=1;
form=1:
n
s=1;
fori=1:
2*m
s=s*i;
end
y=y+(-1)^m.*x^(2*m)/s;
end
y
结果:
>>cos222(pi,34)
y=
-1.0000
(2)
(-1<x≤1)n≥2000即可
For语句
functionzky(x,n)
s=x;
fori=1:
n
s=s+(-1)^i*x^(i+1)/(i+1);
end
s
结果:
>>zky(1,2000)
s=
0.6934
While语句
functionzky2(x,n)
s=x;j=1;
whilej<=n
s=s+(-1)^j*x^(j+1)/(j+1);
j=j+1;
end
s
结果:
>>zky2(1,2000)
s=
0.6934
函数调用
functionzky3(x,n)
s=x;
fori=1:
n
s=s+xx(x,i);
end
s
functiony=xx(x,n)
y=(-1)^n*x^(n+1)/(n+1);
结果:
>>zky3(1,2000)
s=
0.6934
课程实验报告
学年学期 2015-2016学年第2学期
课程名称 MATLAB与科学计算
实验名称 实验四Simulink仿真
实验室 测量测绘实验中心计算机室
专业年级 土级
学生姓名
学生学号
提交时间2016-06-02
成 绩
任课教师 王增红
水利与建筑工程学院
实验四Simulink仿真
1、目的和要求
掌握Simulink的模型窗口、创建过程,会设置模块和信号线参数。
2、内容和步骤
参见教材7.5.2小节内容。
3、实验报告提交要求
(1)使用Simulink模型窗口用两种方法建立二阶系统的仿真模型,并写出具体步骤。
法一:
Ø打开simulink窗口,新建一个模型。
Ø在“Sources”模块库选择“Step”模块,在“Conyinuous”模块库选择“TransferFcn”模块,在“MathOperations”模块库选择“Sum”模块,在“Sinks”模块库选择“Scope”模块。
连接各模块,从信号线引出分支点,构成环闭系统。
Ø设置模块参数,打开“Sum”模块“参数设置”对话框,将“Iconshape”设置为“rectangular”,将“Listofsigns”设置为“|+-”。
在“TransferFcn”模块的“参数设置”对话框中,将坟墓多项式“Denominator”设置为“[10.60]”。
在“Step”模块的“参数设置”对话框中,将“Steptime”修改为0。
Ø添加信号线文本注释。
Ø方针并分析。
在Simulink模型窗口,选择菜单“Simulation”→“Simulationparameters…”命令,在“Solver”页将“Stoptime”设置为15,单机“Startsimulation”按钮,示波器显示时间为15s。
打开示波器的“y坐标设置”对话框,将y坐标的“Y-min”改为0,“Y-max”改为2。
运行后得到下图。
法二:
将法一中系统的结构修改成使用积分模块(integrater)和零极点模块(zero-pole)串联,反馈使用“mathoperations”模块库中的“gain”模块结构成反馈环的增益为-1,二阶系统结构如图一所示,因此运行后的波形图也与法一所得到的波形图相同。
(2)使用Simulink模型窗口创建如下所示的模型,并进行仿真。
步骤:
Ø选择“sources”模块库中选择两个“sinewave”模块,在“MathOperations”中选择“sum”模块,在“sinks”模块中选择“scope”模块,在“continuous”模块库中选择“integrator”模块。
Ø然后用信号线连接个模块,构成闭环系统。
Ø仿真并分析,单击工具栏中的“startsimulation”按钮开始仿真,在示波器上显示仿真波形。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- matlab 实验 西北农林 科技大学