matlab课后习题解答第二章.docx
《matlab课后习题解答第二章.docx》由会员分享,可在线阅读,更多相关《matlab课后习题解答第二章.docx(16页珍藏版)》请在冰豆网上搜索。
matlab课后习题解答第二章
matlab课后习题解答第二章(总9页)
第2章符号运算
习题2及解答
11说出以下四条指令产生的结果各属于哪种数据类型,是“双精度”对象,还是“符号”符号对象
3/7+;sym(3/7+;sym('3/7+');vpa(sym(3/7+)
〖目的〗
不能从显示形式判断数据类型,而必须依靠class指令。
〖解答〗
c1=3/7+
c2=sym(3/7+
c3=sym('3/7+')
c4=vpa(sym(3/7+)
Cs1=class(c1)
Cs2=class(c2)
Cs3=class(c3)
Cs4=class(c4)
c1=
c2=
37/70
c3=
c4=
Cs1=
double
Cs2=
sym
Cs3=
sym
Cs4=
sym
12在不加专门指定的情况下,以下符号表达式中的哪一个变量被认为是自由符号变量.
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
5求符号矩阵
的行列式值和逆,所得结果应采用“子表达式置换”简洁化。
〖目的〗
理解subexpr指令。
〖解答〗
A=sym('[a11a12a13;a21a22a23;a31a32a33]')
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)通过符号计算求
的导数
。
(2)然后根据此结果,求
和
。
〖目的〗
diff,limit指令的应用。
如何理解运行结果。
〖解答〗
symst
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=
0
9求出
的具有64位有效数字的积分值。
〖目的〗
符号积分的解析解和符号数值解。
符号计算和数值计算的相互校验。
〖解答〗
(1)符号积分
symsxclear
symsx
y=exp(-abs(x))*abs(sin(x))
si=vpa(int(y,-10*pi,*pi),64)
y=
abs(sin(x))/exp(abs(x))
si=
(2)数值计算复验
xx=-10*pi:
pi/100:
*pi;
sn=trapz(exp(-abs(xx)).*abs(sin(xx)))*pi/100
sn=
10计算二重积分
。
〖目的〗
变上限二重积分的符号计算法。
〖解答〗
symsxy
f=x^2+y^2;
r=int(int(f,y,1,x^2),x,1,2)
r=
1006/105
11在
区间,画出
曲线,并计算
。
〖目的〗
在符号计算中,经常遇到计算结果是特殊经典函数的情况。
如何应用subs获得超过16位有效数字的符号数值结果。
初步尝试ezplot指令的简便。
〖解答〗
(1)符号计算
symstx;
f=sin(t)/t;
y=int(f,t,0,x)%将得到一个特殊经典函数
y5=subs(y,x,sym(''))
ezplot(y,[0,2*pi])
y=
sinint(x)
y5=
(2)数值计算复验
tt=0:
:
;
tt
(1)=eps;
yn=trapz(sin(tt)./tt)*
yn=
12在
的限制下,求
的一般积分表达式,并计算
的32位有效数字表达。
〖目的〗
一般符号解与高精度符号数值解。
〖解答〗
symsx
symsnpositive
f=sin(x)^n;
yn=int(f,x,0,pi/2)
y3s=vpa(subs(yn,n,sym('1/3')))
y3d=vpa(subs(yn,n,1/3))
yn=
beta(1/2,n/2+1/2)/2
y3s=
y3d=
13有序列
,
,(在此
,
),求这两个序列的卷积
。
〖目的〗
符号离散卷积直接法和变换法。
〖解答〗
(1)直接法
symsabkn
x=a^k;
h=b^k;
w=symsum(subs(h,k,n)*subs(x,k,k-n),n,0,k)%据定义
y1=simple(w)
w=
piecewise([a=b,b^k+b^k*k],[a<>b,(a*a^k-b*b^k)/(a-b)])
y1=
piecewise([a=b,b^k+b^k*k],[a<>b,(a*a^k-b*b^k)/(a-b)])
(2)变换法(复验)
symsz
X=ztrans(a^k,k,z);
H=ztrans(b^k,k,z);
y2=iztrans(H*X,z,k)%通过Z变换及反变换
y2=
piecewise([b<>0,(a*a^k)/(a-b)-(b*b^k)/(a-b)])
〖说明〗
符号计算不同途径产生的结果在形式上有可能不同,而且往往无法依靠符号计算本身的指令是它们一致。
此时,必须通过手工解决。
15求
的Fourier变换。
〖目的〗
符号变量限定性定义的作用。
fourier指令的应用。
〖解答〗
symsAtw
a=sym('a','positive');
f=A*exp(-a*abs(t));
y=fourier(f,t,w)
F=simple(y)
y=
(2*A*a)/(a^2+w^2)
F=
(2*A*a)/(a^2+w^2)
17求
的Laplace反变换。
〖解答〗
symsst
F=(s+3)/(s^3+3*s^2+6*s+4);
f=simple(ilaplace(F,s,t))
f=
(3^(1/2)*sin(3^(1/2)*t)-2*cos(3^(1/2)*t)+2)/(3*exp(t))
19求
的Z变换表达式。
〖目的〗
注意:
变换中,被变换变量的约定。
〖解答〗
symslambdakTz;
f_k=k*exp(-lambda*k*T);
F_z=simple(ztrans(f_k,k,z))
F_z=
(z*exp(T*lambda))/(z*exp(T*lambda)-1)^2
20求方程
的解。
〖目的〗
solve指令中,被解方程的正确书写,输出量的正确次序。
〖解答〗
eq1='x^2+y^2=1';
eq2='x*y=2';
[x,y]=solve(eq1,eq2,'x','y')
x=
(1/2+(15^(1/2)*i)/2)^(1/2)/2-(1/2+(15^(1/2)*i)/2)^(3/2)/2
-(1/2+(15^(1/2)*i)/2)^(1/2)/2+(1/2+(15^(1/2)*i)/2)^(3/2)/2
(1/2-(15^(1/2)*i)/2)^(1/2)/2-(1/2-(15^(1/2)*i)/2)^(3/2)/2
-(1/2-(15^(1/2)*i)/2)^(1/2)/2+(1/2-(15^(1/2)*i)/2)^(3/2)/2
y=
(1/2+(15^(1/2)*i)/2)^(1/2)
-(1/2+(15^(1/2)*i)/2)^(1/2)
(1/2-(15^(1/2)*i)/2)^(1/2)
-(1/2-(15^(1/2)*i)/2)^(1/2)
23求微分方程
的通解,并绘制任意常数为1时解的图形。
〖目的〗
理解指令dsolve的正确使用。
对dsolve输出结果的正确理解。
ezplot指令绘图时,如何进行线色控制。
如何覆盖那些不能反映图形窗内容的图名。
〖解答〗
(1)求通解
reset(symengine)
clear
symsyx
y=dsolve('*y*Dy+*x=0','x')
y=
2^(1/2)*(C3-(5*x^2)/8)^(1/2)
-2^(1/2)*(C3-(5*x^2)/8)^(1/2)
(2)根据所得通解中不定常数的符号写出“对其进行数值替代的指令”
yy=subs(y,'C3',1)%将通解中的C3用1代替
yy=
2^(1/2)*(1-(5*x^2)/8)^(1/2)
-2^(1/2)*(1-(5*x^2)/8)^(1/2)
(3)观察通解中两个分解的平方是否相同
yy
(1)^2==yy
(2)^2
ans=
1
(4)于是可考虑函数的平方关系
symsY
fxy=Y^2-yy
(1)^2
fxy=
Y^2+(5*x^2)/4-2
(5)根据平方关系式画完整曲线
clf
ezplot(fxy,[-2,2,-2,2])
axissquare
gridon
(6)假如直接用“分解”画曲线,那么将是不完整的
ezplot(yy
(1)),holdon
cc=get(gca,'Children');
set(cc,'Color','r')
ezplot(yy
(2)),axis([-22-22])
legend('y
(1)','y
(2)'),holdoff;
title('')%覆盖不完全的图名
grid
axissquare
24求一阶微分方程
的解。
〖目的〗
初值微分方程的符号解。
pretty指令的使用。
〖解答〗
x=dsolve('Dx=a*t^2+b*t','x(0)=2','t')
pretty(x)%比较易读的表达形式
x=
(t^2*(3*b+2*a*t))/6+2
2
t(3b+2at)
----------------+2
6
25求边值问题
的解。
(注意:
相应的数值解法比较复杂)。
〖目的〗
边值微分方程的符号解。
〖解答〗
[f,g]=dsolve('Df=3*f+4*g','Dg=-4*f+3*g','f(0)=0,g(0)=1')
f=
sin(4*t)*exp(3*t)
g=
cos(4*t)*exp(3*t)