matlab课后习题解答第二章
更新时间:2017/2/11 3:14:00 浏览量:630 手机版
第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
?a11
5求符号矩阵A???a21
??a31
〖目的〗
? 理解subexpr指令。
〖解答〗 a12a22a32a13?a23?所得结果应采用“子?的行列式值和逆,a33??表达式置换”简洁化。
A=sym('[a11 a12 a13;a21 a22 a23;a31 a32 a33]')
DA=det(A)
IA=inv(A);
[IAs,d]=subexpr(IA,d)
A =
[ a11, a12, a13]
[ a21, a22, a23]
[ a31, a32, a33]
DA =
a11*a22*a33 - a11*a23*a32 - a12*a21*a33 + a12*a23*a31 + a13*a21*a32 - a13*a22*a31
IAs =
[ d*(a22*a33 - a23*a32), -d*(a12*a33 - a13*a32), d*(a12*a23 - a13*a22)]
[ -d*(a21*a33 - a23*a31), d*(a11*a33 - a13*a31), -d*(a11*a23 - a13*a21)]
[ d*(a21*a32 - a22*a31), -d*(a11*a32 - a12*a31), d*(a11*a22 - a12*a21)] d =
1/(a11*a22*a33 - a11*a23*a32 - a12*a21*a33 + a12*a23*a31 + a13*a21*a32 - a13*a22*a31)
8(1)通过符号计算求y(t)?sint的导数
dy求dtdy和dt?
2dy。(2)然后根据此结果,dt。 t?0?t?
〖目的〗
? diff, limit指令的应用。
? 如何理解运行结果。
〖解答〗
syms t
y=abs(sin(t))
d=diff(y) %求dy/dt
d0_=limit(d,t,0,'left') %求dy/dt|t=0-
dpi_2=limit(d,t,pi/2) %求dy/dt|t=pi/2
y =
abs(sin(t))
d =
sign(sin(t))*cos(t)
d0_ =
-1
dpi_2 =
9求出?1.7?
?10?e?xsinxdx的具有64位有效数字的积分值。
〖目的〗
? 符号积分的解析解和符号数值解。
? 符号计算和数值计算的相互校验。
〖解答〗
(1)符号积分
syms x clear
syms x
y=exp(-abs(x))*abs(sin(x))
si=vpa(int(y,-10*pi,1.7*pi),64)
y =
abs(sin(x))/exp(abs(x))
si =
1.087849499412904913166671875948174520895458535212845987519414166
(2)数值计算复验
xx=-10*pi:pi/100:1.7*pi;
sn=trapz(exp(-abs(xx)).*abs(sin(xx)))*pi/100
sn =
1.0877
10计算二重积分?12?x21(x2?y2)dydx。
〖目的〗
? 变上限二重积分的符号计算法。
〖解答〗
syms x y
f=x^2+y^2;
r=int(int(f,y,1,x^2),x,1,2)
r =
1006/105
11在[0,2?]区间,画出y(x)??x
0sint曲线,并计算y(4.5)。 t
〖目的〗
? 在符号计算中,经常遇到计算结果是特殊经典函数的情况。
? 如何应用subs获得超过16位有效数字的符号数值结果。 ? 初步尝试ezplot指令的简便。
〖解答〗
(1)符号计算
syms t x;
f=sin(t)/t;
y=int(f,t,0,x) % 将得到一个特殊经典函数 y5=subs(y,x,sym('4.5'))
ezplot(y,[0,2*pi])
y =
sinint(x)
y5 =
(2)数值计算复验
tt=0:0.001:4.5;
tt(1)=eps;
yn=trapz(sin(tt)./tt)*0.001
yn =
1.6541
?
12在n?0的限制下,求y(n)?
1
3?20sinnxdx的一般积分表达式,并计算y()的32位有效数字表达。
〖目的〗
? 一般符号解与高精度符号数值解。
〖解答〗
syms x
syms n positive