MATLAB程序设计与应用(刘卫国编)课后实验答案.pdf
《MATLAB程序设计与应用(刘卫国编)课后实验答案.pdf》由会员分享,可在线阅读,更多相关《MATLAB程序设计与应用(刘卫国编)课后实验答案.pdf(66页珍藏版)》请在三一文库上搜索。
1、 实验一 MATLAB 运算基础 1. 先求下列表达式的值,然后显示MATLAB 工作空间的使用情 况并保存全部变量。 (1) 0 1 2 2sin85 1 z e (2) 2 2 1 ln(1) 2 zxx,其中 212 0.455 i x (3) 0.30.3 3 0.3 sin(0.3)ln,3.0,2.9,2.9, 3.0 22 aa eea zaa (4) 2 2 4 2 01 112 2123 tt ztt ttt ,其中 t=0:0.5:2.5 解: M 文件: z1=2*sin(85*pi/180)/(1+exp(2) x=2 1+2*i;-.45 5; z2=1/2*log(
2、x+sqrt(1+x2) a=-3.0:0.1:3.0; z3=(exp(0.3.*a)-exp(-0.3.*a)./2.*sin(a+0.3)+log(0.3+a)./2) t=0:0.5:2.5; z4=(t=02 3 4 5 7 6;2 2 2 2 2 3;11 2 3 9 7 3;2 3 4 5 6 7 输入一正整数n=4 11 2 3 9 7 3 输入一个5 行 6 列矩阵 A=1 2 3 4 5 5;2 3 4 5 7 6;2 2 2 2 2 3;11 2 3 9 7 3;2 3 4 5 6 7 输入一正整数n=6 2 3 4 5 6 7 ans = Error using = d
3、isp Too many input arguments. 实验四循环结构程序设计 一、实验目的 1. 掌握利用for 语句实现循环结构的方法。 2. 掌握利用while 语句实现循环结构的方法。 3. 熟悉利用向量运算来代替循环操作的方法。 二、实验内容 1. 根据 2 2222 1111 6123n ,求的近似值。当n 分别取 100、1000 、10000 时,结果是多少? 要求:分别用循环结构和向量运算(使用sum 函数)来实现。 解: M 文件如下: 运行结果如下: K % 循环结构计算pi 值 y=0; n=input(n=); for i=1:n y=y+1/i/i; end p
4、i=sqrt(6*y) n=100 pi = 3.1321 n=1000 pi = 3.1406 n=10000 pi = 3.1415 %向量方法计算Pi 值 n=input(n=); i=1./(1:n).2; s=sum(i); pi=sqrt(6*s) n=100 pi = 3.1321 n=1000 pi = 3.1406 n=10000 pi =3.1415 2. 根据 111 1 3521 y n ,求: (1) y y=0;n=0; while y3 n=n-1; end n y = 3.0033 n = 57 n = 56 3. 考虑以下迭代公式: 1n n a x bx 其
5、中 a、b 为正的学数。 (1) 编写程序求迭代的结果,迭代的终止条件为|xn+1-xn|10 -5,迭代初值 x0=1.0 ,迭代 次数不超过500 次。 (2) 如果迭代过程收敛于r,那么r 的准确值是 2 4 2 bba ,当 (a,b) 的值取 (1,1) 、 (8,3) 、(10,0.1) 时,分别对迭代结果和准确值进行比较。 解: M 文件如下: 运算结果如下; 请输入正数a=1 请输入正数b=1 x = 0.6180 r = 0.6180 -4.7016 r = 0.6180 -1.6180 s = -0.0000 -2.2361 请输入正数a=8 请输入正数b=3 x = 1.
6、7016 r = 1.7016 -1.6180 r = 1.7016 -4.7016 s = 0.0 -6.4031 请输入正数a=10 请输入正数b=0.1 x = 3.1127 r = 3.1127 -4.7016 r = 3.1127 -3.2127 s = -0.0000 -6.3254 4. 已知 1 2 3 123 11 02 13 23 nnnn fn fn fn ffffn 求 f1f100中: (1) 最大值、最小值、各数之和。 (2) 正数、零、负数的个数。 解: M文件 以下是运算结果: max(f)=437763282635 min(f)=-899412113528 s
7、um(f)=-742745601951 c1=49 c2=2 c3=49 5. 若两个连续自然数的乘积减1 是素数,则称这两个边疆自然数是亲密数对,该素数 是亲密素数。 例如,2 3-1=5 , 由于 5 是素数,所以 2 和 3 是亲密数, 5 是亲密素数。 求2,50 区间内: (1) 亲密数对的对数。 (2) 与上述亲密数对对应的所有亲密素数之和。 解: M 文件: 运算结果为: j = 29 s = 23615 实验五函数文件 一、实验目的 1. 理解函数文件的概念。 2. 掌握定义和调用MATLAB 函数的方法。 二、实验内容 1. 定义一个函数文件,求给定复数的指数、对数、正弦和余
8、弦,并在命令文件中调用 该函数文件。 解: M 文件如下: 函数 fushu.M 文件: function e,l,s,c = fushu(z) %fushu 复数的指数,对数,正弦,余弦的计算 %e 复数的指数函数值 %l 复数的对数函数值 %s 复数的正弦函数值 %c 复数的余弦函数值 e=exp(z); l=log(z); s=sin(z); c=cos(z); 命令文件M: z=input( 请输入一个复数z=); a,b,c,d=fushu(z) 运算结果如下: z=input( 请输入一个复数z=); a,b,c,d=fushu(z) 请输入一个复数z=1+i a = 1.4687
9、 + 2.2874i b = 0.3466 + 0.7854i c = 1.2985 + 0.6350i d = 0.8337 - 0.9889i 2. 一物理系统可用下列方程组来表示: 111 211 12 22 0cossin0 sin0cos0 00sin0 00cos1 amm am gm Nm Nm g 从键盘输入m1、m2和 的值,求a1、a2、N1和 N2的值。其中g 取 9.8,输入 时以角度 为单位。 要求:定义一个求解线性方程组AX=B的函数文件,然后在命令文件中调用该函数文 件。 解:M 文件 函数 fc.M 文件 : function X= fc(A,B) %fc fc
10、 是求解线性方程的函数 %A A 是未知矩阵的系数矩阵 X=AB ; 命令 M 文件: clc; m1=input( 输入 m1=); m2=input( 输入 m2=); theta=input( 输入 theta=); x=theta*pi/180; g=9.8; A=m1*cos(x) -m1 -sin(x) 0 m1*sin(x) 0 cos(x) 0 0 m2 -sin(x) 0 0 0 -cos(x) 1; B=0;m1*g;0;m2*g; X=fc(A,B) 运算结果: 输入 m1=1 输入 m2=1 输入 theta=30 X = 7.8400 3.3948 6.7896 15
11、.6800 3. 一个自然数是素数,且它的数字位置经过任意对换后仍为素数。例如 13 是绝对素数。 试 求所有两位绝对素数。 要求:定义一个判断素数的函数文件。 解: M 文件: 函数 prime.m 文件 function p = prime(p) % 输入 p 的范围,找出其中的素数 m=p(length(p); for i=2:sqrt(m) n=find(rem(p,i)=0 p(n)=; %将 p 中能被 i 整除,而却不等于i 的元素,即下标为n 的元素剔除,其余的即为素数 end p; 命令文件: clc; p=10:99; p=prime(p); %找出 10 到 99 内的所
12、有素数 p=10*rem(p,10)+(p-rem(p,10)/10; %将 p 素数矩阵每个元素个位十位调换顺序 p=prime(p) %再对对换后的素数矩阵找出所有的素数 运算结果: p = 11 31 71 13 73 17 37 97 79 4. 设 24 11 ( ) (2)0.1(3)0.01 f x xx ,编写一个MATLAB 函数文件fx.m,使得 调用 f(x) 时, x 可用矩阵代入,得出的f(x)为同阶矩阵。 解: 函数 fx.m 文件: function f= fx(x) %fx fx 求算 x 矩阵下的f(x) 的函数值 A=0.1+(x-2).2; B=0.01+
13、(x-3).4; f=1./A+1./B; 命令文件: clc; x=input( 输入矩阵x=); f=fx(x) 运算结果: x=input( 输入矩阵x=); f=fx(x) 输入矩阵x=7 2;12 5 f = 0.0437 10.9901 0.0101 0.1724 5. 已知 (40) (30)(20) f y ff (1) 当 f(n)=n+10ln(n 2+5) 时,求 y 的值。 (2) 当 f(n)=1 2+2 3+34+.+n (n+1) 时,求 y 的值。 解: (1) 函数 f.m 文件 : function f=f(x) f=x+10*log(x2+5); 命令文件
14、: clc; n1=input(n1=); n2=input(n2=); n3=input(n3=); y1=f(n1); y2=f(n2); y3=f(n3); y=y1/(y2+y3) 运算结果如下: n1=40 n2=30 n3=20 y = 0.6390 (2). 函数 g.m 文件 function s= g(n) for i=1:n g(i)=i*(i+1); end s=sum(g); 命令文件: clc; n1=input(n1=); n2=input(n2=); n3=input(n3=); y1=g(n1); y2=g(n2); y3=g(n3); y=y1/(y2+y3)
15、 运算结果如下: n1=40 n2=30 n3=20 y = 1.7662 实验六高层绘图操作 一、实验目的 1. 掌握绘制二维图形的常用函数。 2. 掌握绘制三维图形的常用函数。 3. 掌握绘制图形的辅助操作。 二、实验内容 1. 设 2 3sin 0.5cos 1 x yx x ,在 x=02 区间取 101 点,绘制函数的曲线。 解: M 文件如下: clc; x=linspace(0,2*pi,101); y=(0.5+3*sin(x)./(1+x.2); plot(x,y) 运行结果有: 2. 已知 y1=x 2, y2=cos(2 x),y3=y1y2,完成下列操作: (1) 在同
16、一坐标系下用不同的颜色和线型绘制三条曲线。 (2) 以子图形式绘制三条曲线。 (3) 分别用条形图、阶梯图、杆图和填充图绘制三条曲线。 解: (1) M 文件: clc; x=-pi:pi/100:pi; y1=x.2; y2=cos(2*x); y3=y1.*y2; plot(x,y1,b-,x,y2,r:,x,y3,k-) 运行结果: (2)M 文件: clc; x=-pi:pi/100:pi; y1=x.2; y2=cos(2*x); y3=y1.*y2; subplot(1,3,1); plot(x,y1,b-); title(y1=x2); subplot(1,3,2); plot(
17、x,y2,r:); title(y2=cos(2x); subplot(1,3,3); plot(x,y3,k-); title(y3=y1*y2); .运行结果: (3)M 文件: clc; x=-pi:pi/100:pi; y1=x.2; y2=cos(2*x); y3=y1.*y2; subplot(2,2,1); plot(x,y1,b-,x,y2,r:,x,y3,k-); subplot(2,2,2); bar(x,y1,b); title(y1=x2); subplot(2,2,3); bar(x,y2,r); title(y2=cos(2x); subplot(2,2,4); b
18、ar(x,y3,k); title(y3=y1*y2); 由上面的M 文件,只要依次将“bar”改为“ stairs ” 、 “stem ” 、 “fill”,再适当更改区间取的 点数,运行程序即可, 即有下面的结果: 3. 已知 2 2 0 1 ln(1)0 2 x x e y xxx 在-5 x5 区间绘制函数曲线。 解: M 文件: clc; x=-5:0.01:5; y=(x+sqrt(pi)/(exp(2).*(x0); plot(x,y) 运行结果: 由图可看出,函数在零点不连续。 4. 绘制极坐标曲线=asin(b+n ),并分析参数a、b、n 对曲线形状的影响。 解: M 文件
19、如下: clc; theta=0:pi/100:2*pi; a=input( 输入 a=); b=input( 输入 b=); n=input( 输入 n=); rho=a*sin(b+n*theta); polar(theta,rho,m) 采用控制变量法的办法,固定两个参数,变动第三个参数观察输出图象的变化。 分析结果:由这8 个图知道, 当 a,n 固定时,图形的形状也就固定了,b 只影响图形的旋转的角度; 当 a,b 固定时, n 只影响图形的扇形数,特别地,当n 是奇数时,扇叶数就是n,当是偶 数时,扇叶数则是2n 个; 当 b,n 固定时, a 影响的是图形大小,特别地,当a 是整
20、数时,图形半径大小就是a。 5. 绘制函数的曲线图和等高线。 22 4 coscos xy zxye 其中 x 的 21 个值均匀分布 -5,5范围, y 的 31 个值均匀分布在0,10 ,要求使用 subplot(2,1,1) 和 subplot(2,1,2) 将产生的曲面图和等高线图画在同一个窗口上。 解: M 文件: clc; x=linspace(-5,5,21); y=linspace(0,10,31); x,y=meshgrid(x,y); z=cos(x).*cos(y).*exp(-sqrt(x.2+y.2)/4); subplot(2,1,1); surf(x,y,z);
21、title( 曲面图 ); subplot(2,1,2); surfc(x,y,z); title( 等高线图 ); 运行结果: 6. 绘制曲面图形,并进行插值着色处理。 cos cos 3 cos sin0, 0 22 sin xst ystst zs 解: M 文件: clc; s=0:pi/100:pi/2; t=0:pi/100:3*pi/2; s,t=meshgrid(s,t); x=cos(s).*cos(t); y=cos(s).*sin(t); z=sin(s); subplot(2,2,1); mesh(x,y,z); title( 未着色的图形); subplot(2,2,
22、2); surf(x,y,z); title(shading faceted (缺省) ); subplot(2,2,3); surf(x,y,z);shading flat; title(shading flat); subplot(2,2,4); surf(x,y,z);shading interp; title(shading interp); 运行结果有: 实验七低层绘图操作 二、实验内容 1. 建立一个图形窗口,使之背景颜色为红色,并在窗口上保留原有的菜单项,而且在 按下鼠标器的左键之后显示出Left Button Pressed字样。 解: M 文件如下: clc; hf=figu
23、re(color,1 0 0,. WindowButtonDownFcn,disp(Left Button Pressed.); 运行结果: 左击鼠标后: 2. 先利用默认属性绘制曲线y=x 2e2x,然后通过图形句柄操作来改变曲线的颜色、 线型 和线宽,并利用文件对象给曲线添加文字标注。 解: M 文件: clc; x=-2:0.01:2; y=x.2.*exp(2*x); h=plot(x,y); set(h,color,0.4,0.2,0.5,linestyle,-,. linewidth,2); text(1.5,1.52*exp(2*1.5),leftarrow x2exp(2x),
24、fontsize,9); 运行结果 : 3. 利用曲面对象绘制曲面v(x,t)=10e -0.01 xsin(2000 t-0.2x+ )。 解: M 文件: clc; x=0:0.1:2*pi; x,t=meshgrid(x); v=10*exp(-0.01*x).*sin(2000*pi*t-0.2*x+pi); axes(view,-37,30); hs=surface(x,t,v,facecolor,. 0.2,0.3,0.3,edgecolor,flat); grid on; xlabel(x-axis); ylabel(y-axis); zlabel(z-axis); title(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 程序设计 应用 卫国 课后 实验 答案
链接地址:https://www.31doc.com/p-5012201.html