MATLAB  R2012a
时间:2021.02.03
创作:欧阳体
课后习题答案全解
  第一章 基础准备及入门
习题1及解答
1.数字1.5e2,1.5e3 中的哪个与1500相同吗?
〖解答〗
1.5e3
2.请指出如下5个变量名中,哪些是合法的?
abcd-2xyz_33chana变量ABCDefgh
〖解答〗
2、5是合法的。
3.在MATLAB环境中,比1大的最小数是多少?
〖解答〗
1+eps
4.设 a = -8 , 运行以下三条指令,问运行结果相同吗?为什么?
w1=a^(2/3)
w2=(a^2)^(1/3)
w3=(a^(1/3))^2
〖解答〗
(1)不同。具体如下
w1=a^(2/3)%仅求出主根
w2=(a^2)^(1/3)%求出(-8)^2的主根
w3=(a^(1/3))^2%求出(-8)主根后再平方
w1 =
  -2.0000 + 3.4641i
w2 =
    4.0000
w3 =
  -2.0000 + 3.4641i
(2)复数的多方根的,下面是求取全部方根的两种方法:
(A)根据复数方根定义
a=-8;n=2;m=3;
ma=abs(a);aa=angle(a);
for k=1:m%m决定循环次数
sa(k)=(aa+2*pi*(k-1))*n/m;%计算各根的相角
end
result=(ma^(2/3)).*exp(j*sa)%计算各根
result =
  -2.0000 + 3.4641i  4.0000 - 0.0000i  -2.0000 - 3.4641i
(B)利用多项式求根
p=[1,0,0,-a^2];
r=roots(p)
r =
  -2.0000 + 3.4641i
  -2.0000 - 3.4641i
  4.0000         
5.指令clear, clf, clc各有什么用处?
〖解答〗
clear清除工作空间中所有的变量。
clf清除当前图形。
clc清除命令窗口中所有显示。
6.以下两种说法对吗?(1)“MATLAB进行数值的表达精度与其指令窗中的数据显示精度相同。”(2)MATLAB指令窗中显示的数值有效位数不超过7位。”
〖解答〗
(1)否;(2)否。
7.想要在MATLAB中产生二维数组,下面哪些指令能实现目的?
(1)S=[1,2,3;4,5,6;7,8;9]
(2)S=[1  2  3;4  5  6;7  8  9]
(3)S=[1,2,3;4,5,6;7,8,9]      %整个指令在中文状态下输入
〖解答〗
前两种输入方法可以,后一种方法不行。
8.试为例1.3-5编写一个解题用的M脚本文件?
〖解答〗
直接点击新文件图标,出现M文件编辑器窗口;在该M文件编辑器中,输入例1.3-5中的全部指令;并另存为p109.m,便得到所需的脚本文件。
第2章符号运算
习题2及解答
/1说出以下四条指令产生的结果各属于哪种数据类型,是“双精度”对象,还是“符号”符号对象?   
3/7+0.1;  sym(3/7+0.1); sym('3/7+0.1'); vpa(sym(3/7+0.1))
〖目的〗
不能从显示形式判断数据类型,而必须依靠class指令。
〖解答〗
c1=3/7+0.1
c2=sym(3/7+0.1)
c3=sym('3/7+0.1')
c4=vpa(sym(3/7+0.1))
Cs1=class(c1)
Cs2=class(c2)
Cs3=class(c3)
Cs4=class(c4)
c1 =
    0.5286
c2 =
37/70
c3 =
0.52857142857142857142857142857143
c4 =
0.52857142857142857142857142857143
Cs1 =
double
Cs2 =
sym
Cs3 =
sym
Cs4 =
sym
/2在不加专门指定的情况下,以下符号表达式中的哪一个变量被认为是自由符号变量.
sym('sin(w*t)'),sym('a*exp(-X)'),sym('z*exp(j*th)')
〖目的〗
理解自由符号变量的确认规则。
〖解答〗
symvar(sym('sin(w*t)'),1)
ans =
w
symvar(sym('a*exp(-X)'),1)
ans =
a
symvar(sym('z*exp(j*th)'),1)
ans =
z
/3求以下两个方程的解
(1)试写出求三阶方程正实根的程序。注意:只要正实根,不要出现其他根。
(2)试求二阶方程时的根。
〖目的〗
体验变量限定假设的影响
〖解答〗
(1)求三阶方程正实根
reset(symengine)%确保下面操作不受前面指令运作的影响
syms x positive
solve(x^3-44.5)
ans =
(2^(2/3)*89^(1/3))/2
(2)求五阶方程的实根
syms a positive%注意:关于x的假设没有去除
solve(x^2-a*x+a^2)
Warning: Explicit solution could not be found.
> In solve at 83
ans =
[ empty sym ]
syms x clear
syms a positive
solve(x^2-a*x+a^2)
ans =
a/2 + (3^(1/2)*a*i)/2
a/2 - (3^(1/2)*a*i)/2
/4观察一个数(在此用@记述)在以下四条不同指令作用下的异同。
a =@, b = sym( @ ), c = sym( @ ,'d' ), d = sym( '@ ' )
在此,@ 分别代表具体数值 7/3 , pi/3 , pi*3^(1/3)  ;而异同通过vpa(abs(a-d)) , vpa(abs(b-d)) , vpa(abs(c-d))等来观察。
〖目的〗
理解准确符号数值的创建法。
高精度误差的观察。
〖解答〗
(1)x=7/3
x=7/3;a=x,b=sym(x),c=sym(x,'d'),matlab速成教程d=sym('7/3'),
a =

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。