资源描述:
《武汉大学matlab期末课程作业》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
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可以
2、清除matlab工作空间中保持的变量。clf可以清除图形窗。clc清除命令窗中显示内容。4.想要在MATLAB中产生二维数组,下面哪些命令能实现目的?S=[1,2,3;4,5,6;7,8;9]S=[123;456;789]S=[1,2,3;4,5,6;7,8,9]%整个命令在中文状态下输入答:第二条S=[123;456;789]能实现目的。中文状态下逗号不是有效字符。第2章1.说出以下四条命令产生的结果各属于哪种数据类型,是“双精度”对象,还是“符号”对象?3/7+0.1,sym(3/7+0.1),vpa(sym(3/7+0.1),4),v
3、pa(sym(3/7+0.1))答:3/7+0.1结果是双精度。sym(3/7+0.1)结果是符号。vpa(sym(3/7+0.1),4)结果是符号。vpa(sym(3/7+0.1))结果是符号。过程如图:1.已知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(sy
4、m('0.7'))*exp(sym('pi/3')))a4=sin(sym('pi/4')+exp(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)))(提示:可用vpa观察误差;注意数位的设置)。答:matlab运行程序如下:formatlong;a1=sin(sym(pi/4)+exp(sy
5、m(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(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(
6、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)的区别带来的。前者以字符串的形式传给符号运算内核,可以保留完整的精度;而后者经过浮点运算后再转换为符号类型,存在精度损失。1.在不加专门指定的情况下,以下符号表达式中的哪一个变量被认为是独立自由变量。
7、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*t2';F=find(T<0);然后,请回答变量a、t1、T、F的维度、规模、长度分别是多少?t1完全等于t2吗?
8、为什么?答:运行程序如下cleara=0;b=pi;t1=a:pi/9:pi;t2=linspace(a,b,10);T=t1*t2';F=find(T<0);a1=ndims(