matlab及应用实验指导书08.9
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
while 表达式 1 语句 1 End
例 2 计算公式: e = 1 +
1 1 1 1 + + + L + + L ,使误差小于给定的 ε 。 1! 2! 3! n!
8
解:把
1 作为误差,程序如下: (n + 1)!
error=input('请输入误差:'); x=1; y=0; n=1; while x>error y=y+x; x=x/n; n=n+1; end e=y
t=0:0.05:10*pi; x=sin(t); y=cos(t); plot3(x,y,t,'*-b') grid on
格式 comet3(x,y,z)
4
t=-20*pi:0.05:20*pi; comet3(sin(t),cos(t),t)
(三) 三维网格图 格式:mesh(X,Y,Z,C),[X,Y]=meshgrid(x,y) 绘出 Z= x 2 y2 − , x ∈ (−8,8) , x ∈ (−8,8) 的三维网格图。 4 2 52
3、IF-ELSE-END 结构
很多情况下, 命令的序列必须根据关系的检验有条件地执行。 在编程语言里, 这种逻辑由某种 If-Else-End 结构来提供。最简单的 If-Else-End 结构是:
if 表达式 1 语句 1 End
如果在表达式 1 中的所有元素为真(非零),那么就执行 if 和 end 语言之间的 语句 1。假如有两个选择,If-Else-End 结构是:
x ∈ (−10,10) , y ∈ (−8,8) ,z=
sin x 2 + y 2 x 2 + y2
5
5、绘出 x = sint , y = t 2 + e t 的彗星效果图。 6、绘出函数 f = x 2 + e y x 在[-2,2],[-2,2]上的三维曲面图。
6
实验三 MATLAB 编程入门
3.将正弦曲线 0~π/2 部分与轴包围的封闭图形填充为蓝色。
x=0:0.1:2*pi; y=sin(x); x1 =0:0.1:pi/2; y1= sin(x1); plot(x,y,'-r') hold on fill([x1,pi/2],[y1,0],'b')
将上面最后一句分别改为 fill(x1,y1,’b’),情况如何变化。 (二) 三维曲线图 格式 plot3(X,Y,Z,S) 绘制螺旋线
1
实验一 熟悉 MATLAB 环境
一、实验目的 1、熟悉 MATLAB 主界面,并学会简单的菜单操作; 2、学会简单的矩阵输入与运算符; 3、掌握部分绘图函数。 二、实验原理 MATLAB 是以复杂矩阵作为基本编程单元的一种程序设计语言。它提供了各 种矩阵的运算与操作,并有较强的绘图功能。 三、实验内容 (一)熟悉简单的矩阵输入 1、从屏幕上输入矩阵 A=[1 2 3;4 5 6;7 8 9],或 A=[1,2,3;4,5,6;7,8,9]。 观察输出结果。 2、试用回车代替分号,观察输出结果。 3、输入矩阵 B=[9,8,7;6,5,4;3,2,1],C=[4,5,6;7,8,9;1,2,3],键入 A,B, C 观察结果。 4、选择 File|new 菜单中的 M-file,输入:name=[9 ,8,7;6,5,4;3,2,1], 保存为“xingming.m”文件,退出编辑环境。此时在工作环境中使用 xingming 命令就可调出姓名矩阵。 5、再试着输入一些矩阵,矩阵中的元素可为任意表达式,但注意矩阵中各 行各列的元素个数需分别相等,否则会给出出错信息。 6、输入 who 和 whos 观察结果,了解其作用。 (二)运算符及基本序列运算 1、数组的加减乘除和乘方运算 输入 A=[1 2 3],B=[4 5 6],求 C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B, 并用 stem 画出 A,B,C,D,E,F,G。再输入一些数组,进行类似运算(注意 大小写字母的不同)。 2、输入 B=[9,8,7;6,5,4;3,2,1]
x 2 y2 + = 1 (用参数方程) 4 16
(3)在同一图形窗口中,画出四幅不同图形(用 subplot 命令) : y1 = cos( x) , y 2 = sin( x − pi / 2) , y3 = x 2 cos( x − pi) , y 4 = esin( x ) ( x ∈ [0,2π ] ) 4、画出如下的三维网格曲面图:
《matlab及应用》实验指导书
自动化工程学院 2008年
实验基本要求
课程名称:matlab 及应用实验 开课学期:3 课程总学时 :10 学时(课外) 开课对象:自动化专业、测控技术及仪器专业二年级学生 实验目的与要求: 《MATLAB 及应用》实验是学习 MATLAB 软件重要实践环节,其目的在于 通过实验让学生熟悉 MATLAB 工作环境及基本功能设置,以 MATLAB 语言为 主要工具,掌握 MATLAB 程序设计的基本原理和设计方法,掌握 MATLAB 在 工程数学中的应用, 为后续课程打下基础, 提高学生分析问题和解决问题的能力, 并通过实验培养学生的创新意识。 本实验课程的基本要求如下: 1. 学会用 MATLAB 语言编写程序, 通过上机实习加深对课堂所学知识的理 解。 2.上机前按要求把实验内容准备好,编好程序,能预计出可能出现的结果。 3.观察实验结果,得出结论。 4.实验结束后提交实验报告。 5.实验考核:采用实验操作与实验报告综合评分。 实验报告内容要求: 一、实验名称 二、实验目的 三、实验内容 四、实验所涉及到的理论知识要点 五、实验方法及步骤 六、实验结果及分析
x=linspace(0,2*pi,30); y=sin(x);plot(x,y)
(3)绘制 y=sin(x)图形
x=0:0.1:2*pi; y=sin(x); plot(x,y)
可以给图形加标记,格栅线
x =0:0.1:2*pi; y=sin(x); plot(x,y,'r-') title('正弦曲线') xlabel('自变量 x') ylabel('函数 y=sinx') text(5.5,0,' y=sinx') grid
if 表达式 1 语句 1 Else 语句 2 end
在这里,如果表达式 1 为真,则执行语句 1;如果表达式是假,则执行语句
2。当有三个或更多的选择时,If-Else-End 结构采用形式
if 表达式 1 语句 1 Else if 表达式 2 语句 2 Else if 表达式 3 语句 3 Else if 表达式 4 语句 4 Else if …… else 语句 end
for x=0:19 for y=0:33 for z=0:100 if (x+y+z==100)&(5*x+3*y+z/3==100) d=[x,y,z] end end end end
2、While 循环
与 For 循环以固定次数求一组命令的值相反,While 循环以不定的次数重复 执行一组语句。While 循环的一般形式是:
n=10。
For 循环的其它重要特点是: (1)For 循环不能用 For 循环内重新赋值循环变量 n 来终止。
for n=1:10 x(n)=sin(n*pi/10); n=9; end x n
执行过程是这样的: n=1,x(1)=sin(pi/10),n=9,n=2,x(2)=sin(2*pi/10),n=9,n=3,…,n=10, x(10)=sin(10*pi/10),n=9。循环结束后 n=9。 (2)在 For 循环内接受任何有效的 MATLAB 数组。
x=-8:8; y=-8:8; [X,Y]=meshgrid(x,y); z=(X.^2/4^2-Y.^2/5^2); mesh(x,y,z)
改变 x,y 的赋值步长,图形怎样变化? (四) 三维曲面图 格式 surf(X,Y,Z,C) 输入教材 46 页下的程序 三、作业(要求写出 MATLAB 命令,图形可不画在实验报告上) 1、在一幅图上画出两个周期的正弦曲线和余弦曲线,画出坐标轴,加上各 种图注,并在正弦曲线(0~π/2)和横轴之间填充红色。 2、某校共有 1560 名学生,其中计算机 213 名,外语 387 名,音乐 220 名, 美术 280 名,中文 280 名,数理 180 名分别画出饼图,条形图示意学生分布(用 pie bar legend)。 3、做出下列函数的图像: (1) y ( x) = x 2 sin( x 2 − x − 2) , − 2 ≤ x ≤ 2 (分别用 plot、fplot) (2)
例 1 公元前五世纪我国古代数学家张丘建在《算经》一书中提出了“百鸡问 题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、母、 雏各几何? 解:设 x:鸡翁数,则 x 的范围:0~19;y:鸡母数,则 y 的范围:0~33;z: 鸡雏数,则 z 的范围:0~100。则:x+y+z=100,5x+3y+z/3=100。这是一个不定 方程。
一、实验目的
1、熟悉 MATLAB 简单编程; 2、学会 M 函数文件的建立存取和调用; 3、掌握 MATLAB 支持的控制流语句和调用格式。
二、实验内容
1、For 循环 For 循环的一般形式是:
for x =array 语句 end
在 for 和 end 语句之间的语句按数组中的每一列执行一次。 在每一次迭代中,
7
data=[3 9 45 6; 7 16 -1 5] for n=data x=n(1)-n(2) end
(3)For 循环可按需要嵌套。
for n=1:5 for m=1:5 A(n,m)=n^2+m^2 end disp(n) end x=zeros(1,10); for n=1:10 x(n)=sin(n*pi/10); end
x 被指定为数组的下一列,即在第 n 次循环中,x=array(:, n)。例如,
for n=1:10 x(n)=sin(n*pi/10); end x
换句话,第一语句是说:对 n 等于 1 到 10,执行所有语句,直至下一个 end 语句。第一次通过 For 循环 n=1,第二次,n=2,如此继续,直至 n=10。在 n=10 以后,For 循环结束,然后执行 end 语句后面的任何命令。注意,该循环结束后
2
(1)输入 B(:,3)观察结果 (2)输入 B(3,:)观察结果 (3)输入 B(2,3)观察结果 (4)输入 B(:,2:3)观察结果 3、输入 A=[1 2 3],B=[4 5 6],输入 A&B,A|B,观察结果。 4、画出 y=sinx 的图形 (1)首先建立坐标点,然后用 plot 命令将这些点汇出并用直线连接起来选 取 5 点(0,0),(π/2,1),(π,0),(3π/2,-1),(2π,0)输入 命令:x=[0,pi/2,pi,3*pi/2,2*pi];y=sin(x);plot(x,y) (2)取 30 点,绘制 y=sin(x)图形
四、作业 1、说明最后一段程序 1、2 两行的作用,或给程序加注释。 2、说明最后一段程序 3-8 行的作用,或给程序加注释。 3、同一坐标系下画出 y=x, y=sinx 的图形。(plot(x,y,x,y1))
3
实验二 MATLAB 绘图
一、实验目的 1、熟悉 MATLAB 二维绘图的方法,MATLAB 三维绘图的方法; 2、掌握部分绘图函数。 二、实验内容 (一)函数绘图 格式 fplot(‘function’,limits),其中 limits 是指定 X 轴范围的向量 [xmin,xmax],或是 X 轴 Y 轴的范围的向量[xmin,xmax,ymin,ymax]。 1、画出 y=sin3x 在[o,pi]上的曲线
输入 fplot('sin(3*x)',[0,pi])
பைடு நூலகம்
画出 y=sinx,y=cosx 在[-2*pi,2*pi]的图像:
fplot('[sin(x),cos(x)]',[-2*pi,2*pi])
2、对数图形,格式 loglog(x,y)。
x=logspace(-1,2); loglog(x,10*exp(x),'-s') grid on
例 2 计算公式: e = 1 +
1 1 1 1 + + + L + + L ,使误差小于给定的 ε 。 1! 2! 3! n!
8
解:把
1 作为误差,程序如下: (n + 1)!
error=input('请输入误差:'); x=1; y=0; n=1; while x>error y=y+x; x=x/n; n=n+1; end e=y
t=0:0.05:10*pi; x=sin(t); y=cos(t); plot3(x,y,t,'*-b') grid on
格式 comet3(x,y,z)
4
t=-20*pi:0.05:20*pi; comet3(sin(t),cos(t),t)
(三) 三维网格图 格式:mesh(X,Y,Z,C),[X,Y]=meshgrid(x,y) 绘出 Z= x 2 y2 − , x ∈ (−8,8) , x ∈ (−8,8) 的三维网格图。 4 2 52
3、IF-ELSE-END 结构
很多情况下, 命令的序列必须根据关系的检验有条件地执行。 在编程语言里, 这种逻辑由某种 If-Else-End 结构来提供。最简单的 If-Else-End 结构是:
if 表达式 1 语句 1 End
如果在表达式 1 中的所有元素为真(非零),那么就执行 if 和 end 语言之间的 语句 1。假如有两个选择,If-Else-End 结构是:
x ∈ (−10,10) , y ∈ (−8,8) ,z=
sin x 2 + y 2 x 2 + y2
5
5、绘出 x = sint , y = t 2 + e t 的彗星效果图。 6、绘出函数 f = x 2 + e y x 在[-2,2],[-2,2]上的三维曲面图。
6
实验三 MATLAB 编程入门
3.将正弦曲线 0~π/2 部分与轴包围的封闭图形填充为蓝色。
x=0:0.1:2*pi; y=sin(x); x1 =0:0.1:pi/2; y1= sin(x1); plot(x,y,'-r') hold on fill([x1,pi/2],[y1,0],'b')
将上面最后一句分别改为 fill(x1,y1,’b’),情况如何变化。 (二) 三维曲线图 格式 plot3(X,Y,Z,S) 绘制螺旋线
1
实验一 熟悉 MATLAB 环境
一、实验目的 1、熟悉 MATLAB 主界面,并学会简单的菜单操作; 2、学会简单的矩阵输入与运算符; 3、掌握部分绘图函数。 二、实验原理 MATLAB 是以复杂矩阵作为基本编程单元的一种程序设计语言。它提供了各 种矩阵的运算与操作,并有较强的绘图功能。 三、实验内容 (一)熟悉简单的矩阵输入 1、从屏幕上输入矩阵 A=[1 2 3;4 5 6;7 8 9],或 A=[1,2,3;4,5,6;7,8,9]。 观察输出结果。 2、试用回车代替分号,观察输出结果。 3、输入矩阵 B=[9,8,7;6,5,4;3,2,1],C=[4,5,6;7,8,9;1,2,3],键入 A,B, C 观察结果。 4、选择 File|new 菜单中的 M-file,输入:name=[9 ,8,7;6,5,4;3,2,1], 保存为“xingming.m”文件,退出编辑环境。此时在工作环境中使用 xingming 命令就可调出姓名矩阵。 5、再试着输入一些矩阵,矩阵中的元素可为任意表达式,但注意矩阵中各 行各列的元素个数需分别相等,否则会给出出错信息。 6、输入 who 和 whos 观察结果,了解其作用。 (二)运算符及基本序列运算 1、数组的加减乘除和乘方运算 输入 A=[1 2 3],B=[4 5 6],求 C=A+B,D=A-B,E=A.*B,F=A./B,G=A.^B, 并用 stem 画出 A,B,C,D,E,F,G。再输入一些数组,进行类似运算(注意 大小写字母的不同)。 2、输入 B=[9,8,7;6,5,4;3,2,1]
x 2 y2 + = 1 (用参数方程) 4 16
(3)在同一图形窗口中,画出四幅不同图形(用 subplot 命令) : y1 = cos( x) , y 2 = sin( x − pi / 2) , y3 = x 2 cos( x − pi) , y 4 = esin( x ) ( x ∈ [0,2π ] ) 4、画出如下的三维网格曲面图:
《matlab及应用》实验指导书
自动化工程学院 2008年
实验基本要求
课程名称:matlab 及应用实验 开课学期:3 课程总学时 :10 学时(课外) 开课对象:自动化专业、测控技术及仪器专业二年级学生 实验目的与要求: 《MATLAB 及应用》实验是学习 MATLAB 软件重要实践环节,其目的在于 通过实验让学生熟悉 MATLAB 工作环境及基本功能设置,以 MATLAB 语言为 主要工具,掌握 MATLAB 程序设计的基本原理和设计方法,掌握 MATLAB 在 工程数学中的应用, 为后续课程打下基础, 提高学生分析问题和解决问题的能力, 并通过实验培养学生的创新意识。 本实验课程的基本要求如下: 1. 学会用 MATLAB 语言编写程序, 通过上机实习加深对课堂所学知识的理 解。 2.上机前按要求把实验内容准备好,编好程序,能预计出可能出现的结果。 3.观察实验结果,得出结论。 4.实验结束后提交实验报告。 5.实验考核:采用实验操作与实验报告综合评分。 实验报告内容要求: 一、实验名称 二、实验目的 三、实验内容 四、实验所涉及到的理论知识要点 五、实验方法及步骤 六、实验结果及分析
x=linspace(0,2*pi,30); y=sin(x);plot(x,y)
(3)绘制 y=sin(x)图形
x=0:0.1:2*pi; y=sin(x); plot(x,y)
可以给图形加标记,格栅线
x =0:0.1:2*pi; y=sin(x); plot(x,y,'r-') title('正弦曲线') xlabel('自变量 x') ylabel('函数 y=sinx') text(5.5,0,' y=sinx') grid
if 表达式 1 语句 1 Else 语句 2 end
在这里,如果表达式 1 为真,则执行语句 1;如果表达式是假,则执行语句
2。当有三个或更多的选择时,If-Else-End 结构采用形式
if 表达式 1 语句 1 Else if 表达式 2 语句 2 Else if 表达式 3 语句 3 Else if 表达式 4 语句 4 Else if …… else 语句 end
for x=0:19 for y=0:33 for z=0:100 if (x+y+z==100)&(5*x+3*y+z/3==100) d=[x,y,z] end end end end
2、While 循环
与 For 循环以固定次数求一组命令的值相反,While 循环以不定的次数重复 执行一组语句。While 循环的一般形式是:
n=10。
For 循环的其它重要特点是: (1)For 循环不能用 For 循环内重新赋值循环变量 n 来终止。
for n=1:10 x(n)=sin(n*pi/10); n=9; end x n
执行过程是这样的: n=1,x(1)=sin(pi/10),n=9,n=2,x(2)=sin(2*pi/10),n=9,n=3,…,n=10, x(10)=sin(10*pi/10),n=9。循环结束后 n=9。 (2)在 For 循环内接受任何有效的 MATLAB 数组。
x=-8:8; y=-8:8; [X,Y]=meshgrid(x,y); z=(X.^2/4^2-Y.^2/5^2); mesh(x,y,z)
改变 x,y 的赋值步长,图形怎样变化? (四) 三维曲面图 格式 surf(X,Y,Z,C) 输入教材 46 页下的程序 三、作业(要求写出 MATLAB 命令,图形可不画在实验报告上) 1、在一幅图上画出两个周期的正弦曲线和余弦曲线,画出坐标轴,加上各 种图注,并在正弦曲线(0~π/2)和横轴之间填充红色。 2、某校共有 1560 名学生,其中计算机 213 名,外语 387 名,音乐 220 名, 美术 280 名,中文 280 名,数理 180 名分别画出饼图,条形图示意学生分布(用 pie bar legend)。 3、做出下列函数的图像: (1) y ( x) = x 2 sin( x 2 − x − 2) , − 2 ≤ x ≤ 2 (分别用 plot、fplot) (2)
例 1 公元前五世纪我国古代数学家张丘建在《算经》一书中提出了“百鸡问 题”:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、母、 雏各几何? 解:设 x:鸡翁数,则 x 的范围:0~19;y:鸡母数,则 y 的范围:0~33;z: 鸡雏数,则 z 的范围:0~100。则:x+y+z=100,5x+3y+z/3=100。这是一个不定 方程。
一、实验目的
1、熟悉 MATLAB 简单编程; 2、学会 M 函数文件的建立存取和调用; 3、掌握 MATLAB 支持的控制流语句和调用格式。
二、实验内容
1、For 循环 For 循环的一般形式是:
for x =array 语句 end
在 for 和 end 语句之间的语句按数组中的每一列执行一次。 在每一次迭代中,
7
data=[3 9 45 6; 7 16 -1 5] for n=data x=n(1)-n(2) end
(3)For 循环可按需要嵌套。
for n=1:5 for m=1:5 A(n,m)=n^2+m^2 end disp(n) end x=zeros(1,10); for n=1:10 x(n)=sin(n*pi/10); end
x 被指定为数组的下一列,即在第 n 次循环中,x=array(:, n)。例如,
for n=1:10 x(n)=sin(n*pi/10); end x
换句话,第一语句是说:对 n 等于 1 到 10,执行所有语句,直至下一个 end 语句。第一次通过 For 循环 n=1,第二次,n=2,如此继续,直至 n=10。在 n=10 以后,For 循环结束,然后执行 end 语句后面的任何命令。注意,该循环结束后
2
(1)输入 B(:,3)观察结果 (2)输入 B(3,:)观察结果 (3)输入 B(2,3)观察结果 (4)输入 B(:,2:3)观察结果 3、输入 A=[1 2 3],B=[4 5 6],输入 A&B,A|B,观察结果。 4、画出 y=sinx 的图形 (1)首先建立坐标点,然后用 plot 命令将这些点汇出并用直线连接起来选 取 5 点(0,0),(π/2,1),(π,0),(3π/2,-1),(2π,0)输入 命令:x=[0,pi/2,pi,3*pi/2,2*pi];y=sin(x);plot(x,y) (2)取 30 点,绘制 y=sin(x)图形
四、作业 1、说明最后一段程序 1、2 两行的作用,或给程序加注释。 2、说明最后一段程序 3-8 行的作用,或给程序加注释。 3、同一坐标系下画出 y=x, y=sinx 的图形。(plot(x,y,x,y1))
3
实验二 MATLAB 绘图
一、实验目的 1、熟悉 MATLAB 二维绘图的方法,MATLAB 三维绘图的方法; 2、掌握部分绘图函数。 二、实验内容 (一)函数绘图 格式 fplot(‘function’,limits),其中 limits 是指定 X 轴范围的向量 [xmin,xmax],或是 X 轴 Y 轴的范围的向量[xmin,xmax,ymin,ymax]。 1、画出 y=sin3x 在[o,pi]上的曲线
输入 fplot('sin(3*x)',[0,pi])
பைடு நூலகம்
画出 y=sinx,y=cosx 在[-2*pi,2*pi]的图像:
fplot('[sin(x),cos(x)]',[-2*pi,2*pi])
2、对数图形,格式 loglog(x,y)。
x=logspace(-1,2); loglog(x,10*exp(x),'-s') grid on