matlab课后习题解答第二章.docx

上传人:b****1 文档编号:29125757 上传时间:2023-07-20 格式:DOCX 页数:16 大小:166.63KB
下载 相关 举报
matlab课后习题解答第二章.docx_第1页
第1页 / 共16页
matlab课后习题解答第二章.docx_第2页
第2页 / 共16页
matlab课后习题解答第二章.docx_第3页
第3页 / 共16页
matlab课后习题解答第二章.docx_第4页
第4页 / 共16页
matlab课后习题解答第二章.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

matlab课后习题解答第二章.docx

《matlab课后习题解答第二章.docx》由会员分享,可在线阅读,更多相关《matlab课后习题解答第二章.docx(16页珍藏版)》请在冰豆网上搜索。

matlab课后习题解答第二章.docx

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)

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 机械仪表

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1