“MATLAB及其应用”课程作业
院系:
姓名:
学号:
:
第1章
1.请指出如下5个变量名中,哪些是合法的?
abcd-2 xyz_3 3chan a变量 ABCDefgh
答:xyz_3,ABCDefgh是合法的。
2.在命令窗中,运行命令a=sqrt(2)。然后请回答以下问题:计算结果a是精准的吗?该计算结果只是5位有效数字精度的近似吗?请在命令窗中,显示出具有最多位有效数字的近似值?再请恢复MATLAB数值结果显示的默认设置。
答:不是精确的。该计算结果只是5位有效数字精度的近似。
3. 命令clear, clf, clc各有什么用处?
答:clear可以清除matlab工作空间中保持的变量。clf可以清除图形窗。clc清除命令窗中显示内容。
4.想要在MATLAB中产生二维数组,下面哪些命令能实现目的?
S=[1,2,3;4,5,6;7,8;9]
S=[1 2 3;4 5 6;7 8 9]
S=[1,2,3;4,5,6;7,8,9] %整个命令在中文状态下输入
matlab直方图答:第二条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.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(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运行程序如下:
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')+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)));
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)的区别带来的。前者以字符串的形式传给符号运算内核,可以保留完整的精度;而后者经过浮点运算后再转换为符号类型,存在精度损失。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论