《武汉大学matlab期末课程作业》由会员分享,可在线阅读,更多相关《武汉大学matlab期末课程作业(15页珍藏版)》请在金锄头文库上搜索。
1、“MATLAB及其应用”课程作业院系:姓名:学号:联系方式:第1章1. 请指出如下5个变量名中,哪些是合法的?abcd-2xyz_33chana变量ABCDefgh 答:xyz_3,ABCDefgh是合法的。2. 在命令窗中,运行命令a=sqrt(2)。然后请回答以下问题:计算结果a是精准的吗?该计算结果只是5位有效数字精度的近似吗?请在命令窗中,显示出具有最多位有效数字的近似值?再请恢复MATLAB数值结果显示的默认设置。答:不是精确的。该计算结果只是5位有效数字精度的近似。3. 命令clear, clf, clc各有什么用处?答:clear可以清除matlab工作空间中保持的变量。clf可
2、以清除图形窗。clc清除命令窗中显示内容。4. 想要在MATLAB中产生二维数组,下面哪些命令能实现目的?S=1,2,3;4,5,6;7,8;9S=1 2 3;4 5 6;7 8 9S=1,2,3;4,5,6;7,8,9 %整个命令在中文状态下输入答:第二条S=1 2 3;4 5 6;7 8 9能实现目的。中文状态下逗号不是有效字符。第2章1 说出以下四条命令产生的结果各属于哪种数据类型,是“双精度”对象,还是“符号”对象?3/7+0.1, sym(3/7+0.1), vpa(sym(3/7+0.1),4), vpa(sym(3/7+0.1)答:3/7+0.1结果是双精度。sym(3/7+0.
3、1)结果是符号。vpa(sym(3/7+0.1),4)结果是符号。vpa(sym(3/7+0.1)结果是符号。过程如图:2 已知a1=sin(sym(pi/4)+exp(sym(0.7)+sym(pi/3)产生精准符号数字,请回答:以下产生的各种符号数哪些是精准的?若不精准,误差又是多少?能说出产生误差的原因吗?a2=sin(sym(pi/4)+exp(sym(0.7)*exp(sym(pi/3)a3=sin(sym(pi/4)+exp(sym(0.7)*exp(sym(pi/3)a4=sin(sym(pi/4)+exp(sym(0.7+pi/3)a5=sin(sym(pi/4)+exp(sy
4、m(0.7+pi/3)a6=sin(sym(pi/4)+sym(exp(0.7+pi/3)a7=sin(sym(pi/4+exp(0.7+pi/3)a8=sym(sin(pi/4+exp(0.7+pi/3)(提示:可用vpa观察误差;注意数位的设置)。答:matlab运行程序如下:format long;a1=sin(sym(pi/4)+exp(sym(0.7)+sym(pi/3);a2=sin(sym(pi/4)+exp(sym(0.7)*exp(sym(pi/3);a3=sin(sym(pi/4)+exp(sym(0.7)*exp(sym(pi/3);a4=sin(sym(pi/4)+ex
5、p(sym(0.7+pi/3);a5=sin(sym(pi/4)+exp(sym(0.7+pi/3);a6=sin(sym(pi/4)+sym(exp(0.7+pi/3);a7=sin(sym(pi/4+exp(0.7+pi/3);a8=sym(sin(pi/4+exp(0.7+pi/3);b2=vpa(a1-a2,40)b3=vpa(a1-a3,40)b4=vpa(a1-a4,40)b5=vpa(a1-a5,40)b6=vpa(a1-a6,40)b7=vpa(a1-a7,40)b8=vpa(a1-a8,40)观察可知,只有a2是精准的。这是由sym(Num)和sym(Num)的区别带来的。前
6、者以字符串的形式传给符号运算内核,可以保留完整的精度;而后者经过浮点运算后再转换为符号类型,存在精度损失。3 在不加专门指定的情况下,以下符号表达式中的哪一个变量被认为是独立自由变量。sym(sin(w*t) , sym(a*exp(-X) ) , sym(z*exp(j*th)答:运行程序如下clearsymvar(sym(sin(w*t) ,1)symvar(sym(a*exp(-X) ) ,1)symvar(sym(z*exp(j*th) ,1)可知分别为w,a,z。第3章1 请读者先运行以下命令a=0;b=pi;t1=a:pi/9:pi;t2=linspace(a,b,10);T=t1
7、*t2;F=find(T0);然后,请回答变量a、t1、T、F的维度、规模、长度分别是多少?t1完全等于t2吗?为什么?答:运行程序如下cleara=0;b=pi;t1=a:pi/9:pi;t2=linspace(a,b,10);T=t1*t2;F=find(T0.5)si=find(B)r,c=find(B)可知,单下标为1,2,4,5,8,9,10,12,13,15;双下标为(1,1)(2,1)(1,2)(2,2)(2,3)(3,3)(1,4)(3,4)(1,5)(3,5)。第4章2. 采用数值计算方法,画出在区间曲线,并计算。(提示:cumtrapz快捷,在精度要求不高处可用;integ
8、ral也可试。巧用find。)答:运行程序如下x=eps:0.01:10;z=sin(x)./x;y=cumtrapz(x,z);plot(x,y),grid on;a=find(x=4.5);y(a)故=1.65415. 求函数在区间中的最小值点。(提示:作图观察。)答:运行程序如下:format longt=-5:0.00001:5;y=(t)(sin(5*t)2*exp(0.06*t2)-1.5*t*cos(2*t)+1.8*abs(t+0.5);ezplot(y,-5,5),grid on,hold ont1,y1=fminbnd(y,-5,5)plot(t1,y1,r*)故最小值点为
9、(-1.285,-0.186)。第5章1 已知椭圆的长、短轴,用“小红点线”画如下图所示的椭圆。(提示:参量;点的大小;axis equal)答:运行程序如下:a=4;b=2;t=0:pi/75:2*pi;plot(a*cos(t),b*sin(t),r.,markersize,15)axis equal,xlabel(x),ylabel(y);3. A,B,C三个城市上半年每个月的国民生产总值表p5.1。试画出如图p5-3所示的三城市上半年每月生产总值的累计直方图。(提示:bar(x,Y,style); colormap(cool); legend。)表p5.1 各城市生产总值数据(单位:亿
10、元)城市1月2月3月4月5月6月A170120180200190220B120100110180170180C70508010095120 图 p5-3运行程序如下:X=1;2;3;4;5;6;Y=170 120 70;120 100 50;180 110 80;200 180 100;190 170 95;220 180 120;bar(X,Y,stacked),colormap(cool),legend(A,B,C,2)第6章1. 请分别写出用for 和while 循环语句计算的程序。此外,还请写出避免循环的数值、符号计算程序。(提示:sum和“指数采用数组”配合; tic, toc可用以
11、记录计算所花的时间。)答:用for的写法:tic;a=0;for k=0:1000000; a=a+0.2k;endat1=toc用while的写法:tic;b=0;k=0;while k=1000000 b=b+0.2k; k=k+1;endbt2=toc避免循环数值程序:tic;k=zeros(1,1000000);d=0:1000000;k=0.2.d;c=sum(k)t3=toc 符号计算程序:tic;syms kd=vpa(symsum(0.2k,k,0,1000000)t4=toc3. 编写一个函数M文件,它的功能:没有输入量时,画出单位圆(见图p6-1);输入量是大于2的自然数N时,绘制正N边形,图名应反映显示多边形的真实边数(见图p6-2);输入量是“非自然数”时,给出“出错提示”。此外,函数M文件应有H1行、帮助说明和程序编写人姓名。(提示:nargin, error, int2str)图 p6-1图 p6-2编写程序如下:function Y=rzy(N)%rzy()则画出单位圆。%rzy(N)中,N为大于2的自然数时,画正N边形,是非自然数时,报错。%该程序编写人为饶梓耀switch