matlab课后习题答案19章.docx

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

matlab课后习题答案19章.docx

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

matlab课后习题答案19章.docx

matlab课后习题答案19章

数字1.5e2,1.5e3中的哪个与1500相同吗?

1.5e3

请指出如下5个变量名中,哪些是合法的?

abcd-2xyz_33chana变量ABCDefgh2、5是合法的。

在MATLAB环境中,比1大的最小数是多少?

1+eps

设a=-8,运行以下三条指令,问运行结果相同吗?

为什么?

w1=a^(2/3)w2=(a^2)^(1/3)w3=(a^(1/3))^2

w1=-2.0000+3.4641i;w2=4.0000;w3=-2.0000+3.4641i

指令clear,clf,clc各有什么用处?

clear清除工作空间中所有的变量。

clf清除当前图形。

clc清除命令窗口中所有显示。

第二章

11说出以下四条指令产生的结果各属于哪种数据类型,是“双精度”对象,还是“符号”符号对象?

3/7+0.1双;sym(3/7+0.1)符;sym('3/7+0.1')符;;vpa(sym(3/7+0.1))符;

12在不加专门指定的情况下,以下符号表达式中的哪一个变量被认为是自由符号变量.

sym('sin(w*t)'),sym('a*exp(-X)'),sym('z*exp(j*th)')

symvar(sym('sin(w*t)'),1)waz

13

(1)试写出求三阶方程

正实根的程序。

注意:

只要正实根,不要出现其他根。

(2)试求二阶方程

时的根。

(1)reset(symengine)

symsxpositive

solve(x^3-44.5)

ans=

(2^(2/3)*89^(1/3))/2

(2)求五阶方程

的实根

symsapositive%注意:

关于x的假设没有去除

solve(x^2-a*x+a^2)

Warning:

Explicitsolutioncouldnotbefound.

>Insolveat83

ans=

[emptysym]

symsxclear

symsapositive

solve(x^2-a*x+a^2)

ans=

a/2+(3^(1/2)*a*i)/2

a/2-(3^(1/2)*a*i)/2

14观察一个数(在此用@记述)在以下四条不同指令作用下的异同。

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'),d=sym('7/3'),

a=

2.3333

b=

7/3

c=

2.3333333333333334813630699500209

d=

7/3

v1=vpa(abs(a-d)),v2=vpa(abs(b-d)),v3=vpa(abs(c-d))

v1=

0.0

v2=

0.0

v3=

0.00000000000000014802973661668756666666667788716

(2)x=pi/3

x=pi/3;a=x,b=sym(x),c=sym(x,'d'),d=sym('pi/3'),

a=

1.0472

b=

pi/3

c=

.0471********

d=

pi/3

v1=vpa(abs(a-d)),v2=vpa(abs(b-d)),v3=vpa(abs(c-d))

v1=

0.0

v2=

0.0

v3=

0.00000000000000011483642827992216762806615818554

(3)x=pi*3^(1/3)

x=pi*3^(1/3);a=x,b=sym(x),c=sym(x,'d'),d=sym('pi*3^(1/3)')

a=

4.5310

b=

1275352044764433/281474976710656

c=

4.5309606547207899041040946030989

d=

pi*3^(1/3)

v1=vpa(abs(a-d)),v2=vpa(abs(b-d)),v3=vpa(abs(c-d))

v1=

0.00000000000000026601114166290944374842393221638

v2=

0.00000000000000026601114166290944374842393221638

v3=

0.0000000000000002660111416629094726767991785515

15求符号矩阵

的行列式值和逆,所得结果应采用“子表达式置换”简洁化。

●理解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)

16求

的符号解,并进而用该符号解求

的准确值。

●symsum,subs的应用。

●从实例中,感受指令所给出的关于

符号解的含义。

symsxk

f=x^(k);

Z1=symsum(f,k,0,inf)

Z1=

piecewise([1<=x,Inf],[abs(x)<1,-1/(x-1)])

subs(Z1,x,{sym('-1/3'),sym('1/pi'),sym('3')})

ans=

[3/4,-1/(1/pi-1),Inf]

17对于

,求

(提示:

理论结果为

●符号变量的限定性定义的作用。

symsk;

x=sym('x','positive');

f_k=2/(2*k+1)*((x-1)/(x+1))^(2*k+1);

s=simple(symsum(f_k,k,0,inf))%结果与理论值lnx相符!

s=

piecewise([abs(x-1)

〖注意〗

●解答中,条件abs(x-1)

⏹约束一:

x-1

2>0

此式总成立,说明“无约束”。

⏹情况二:

-(x-1)

x>0

此为“约束”,满足题意。

18

(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

19求出

的具有64位有效数字的积分值。

●符号积分的解析解和符号数值解。

●符号计算和数值计算的相互校验。

(1)符号积分

symsxclear

symsx

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

 

110计算二重积分

●变上限二重积分的符号计算法。

symsxy

f=x^2+y^2;

r=int(int(f,y,1,x^2),x,1,2)

r=

1006/105

 

111在

区间,画出

曲线,并计算

●在符号计算中,经常遇到计算结果是特殊经典函数的情况。

●如何应用subs获得超过16位有效数字的符号数值结果。

●初步尝试ezplot指令的简便。

(1)符号计算

symstx;

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=

1.6541404143792439835039224868515

 

(2)数值计算复验

tt=0:

0.001:

4.5;

tt

(1)=eps;

yn=trapz(sin(tt)./tt)*0.001

yn=

1.6541

 

112在

的限制下,求

的一般积分表达式,并计算

的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=

1.2935547796148952674767575125656

y3d=

1.2935547796148951782413405453553

 

113求方程

的解。

●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)

 

114求微分方程

的通解,并绘制任意常数为1时解的图形。

●理解指令dsolve的正确使用。

●对dsolve输出结果的正确理解。

●ezplot指令绘图时,如何进行线色控制。

●如何覆盖那些不能反映图形窗内容的图名。

(1)求通解

reset(symengine)

clear

symsyx

y=dsolve('0.2*y*Dy+0.25*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

 

115求一阶微分方程

的解。

●初值微分方程的符号解。

●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

 

116求边值问题

的解。

(注意:

相应的数值解法比较复杂)。

●边值微分方程的符号解。

[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)

 

(1)数值数组及其运算

习题3及解答

要求在闭区间

上产生具有10个等距采样点的一维数组。

试用两种不同的指令实现。

第1章数值计算中产生自变量采样点的两个常用指令的异同。

%方法一

t1=linspace(0,2*pi,10)

%方法二

t2=0:

2*pi/9:

2*pi%要注意采样间距的选择,如这里的2*pi/9.

t1=

Columns1through7

00.69811.39632.09442.79253.49074.1888

Columns8through10

4.88695.58516.2832

t2=

Columns1through7

00.69811.39632.09442.79253.49074.1888

Columns8through10

4.88695.58516.2832

 

由指令rng('default'),A=rand(3,5)生成二维数组A,试求该数组中所有大于0.5的元素的位置,分别求出它们的“全下标”和“单下标”。

第1章数组下标的不同描述:

全下标和单下标。

第1章sub2ind,int2str,disp的使用。

第1章随机发生器的状态控制:

保证随机数的可复现性。

rng('default')

A=rand(3,5)

[ri,cj]=find(A>0.5);

id=sub2ind(size(A),ri,cj);

ri=ri';cj=cj';

disp('')

disp('大于0.5的元素的全下标')

disp(['行号',int2str(ri)])

disp(['列号',int2str(cj)])

disp('')

disp('大于0.5的元素的单下标')

disp(id')

A=

0.81470.91340.27850.96490.9572

0.90580.63240.54690.15760.4854

0.12700.09750.95750.97060.8003

大于0.5的元素的全下标

行号1212231313

列号1122334455

大于0.5的元素的单下标

12458910121315

 

已知矩阵

,运行指令B1=A.^(0.5),B2=A^(0.5),可以观察到不同运算方法所得结果不同。

(1)请分别写出根据B1,B2恢复原矩阵A的程序。

(2)用指令检验所得的两个恢复矩阵是否相等。

第1章数组运算和矩阵运算的不同。

第1章如何判断两个双精度数组是否相等。

第1章norm指令的应用。

A=[1,2;3,4];

B1=A.^0.5

B2=A^0.5

A1=B1.*B1;

A2=B2*B2;

norm(A1-A2,'fro')%求误差矩阵的F-范数,当接近eps量级时,就认为实际相等

B1=

1.00001.4142

1.73212.0000

B2=

0.5537+0.4644i0.8070-0.2124i

1.2104-0.3186i1.7641+0.1458i

ans=

8.4961e-016

在时间区间[0,10]中,绘制

曲线。

要求分别采取“标量循环运算法”和“数组运算法”编写两段程序绘图。

第1章加强理解数组运算的机理和应用。

第1章初步使用subplot,plot,xlabel,ylabel等指令绘图。

%标量循环运算法

t=linspace(0,10,200);

N=length(t);

y1=zeros(size(t));

fork=1:

N

y1(k)=1-exp(-0.5*t(k))*cos(2*t(k));

end

subplot(1,2,1),plot(t,y1),xlabel('t'),ylabel('y1'),gridon

%数组运算法

y2=1-exp(-0.5*t).*cos(2*t);

subplot(1,2,2),plot(t,y2),xlabel('t'),ylabel('y2'),gridon

 

先运行clear,formatlong,rng('default'),A=rand(3,3),然后根据A写出两个矩阵:

一个对角阵B,其相应元素由A的对角元素构成;另一个矩阵C,其对角元素全为0,而其余元素与对应的A阵元素相同。

第1章常用指令diag的使用场合。

clear,

formatlong

rng('default')

A=rand(3,3)

B=diag(diag(A))

C=A-B

A=

0.8147236863931790.9133758561390190.278498218867048

0.9057919370756190.6323592462254100.546881519204984

0.1269868162935060.0975404049994100.957506835434298

B=

0.81472368639317900

00.6323592462254100

000.957506835434298

C=

00.9133758561390190.278498218867048

0.90579193707561900.546881519204984

0.1269868162935060.0975404049994100

 

先运行指令x=-3*pi:

pi/15:

3*pi;y=x;[X,Y]=meshgrid(x,y);warningoff;Z=sin(X).*sin(Y)./X./Y;产生矩阵Z。

(1)请问矩阵Z中有多少个“非数”数据?

(2)用指令surf(X,Y,Z);shadinginterp观察所绘的图形。

(3)请写出绘制相应的“无裂缝”图形的全部指令。

第1章初步感受三维曲面的绘制方法。

第1章非数NaN的产生,非数的检测,和对图形的影响。

第1章sum的应用。

第1章eps如何克服“被零除”的尴尬。

x=-3*pi:

pi/15:

3*pi;

y=x;

[X,Y]=meshgrid(x,y);

warningoff

Z=sin(X).*sin(Y)./X./Y;

NumOfNaN=sum(sum(isnan(Z)))%计算“非数”数目

subplot(1,2,1),surf(X,Y,Z),shadinginterp,title('有缝图')

%产生无缝图

XX=X+(X==0)*eps;

YY=Y+(Y==0)*eps;

ZZ=sin(XX).*sin(YY)./XX./YY;

subplot(1,2,2),surf(XX,YY,ZZ),shadinginterp,title('无缝图')

NumOfNaN=

181

 

下面有一段程序,企图用来解决如下计算任务:

有矩阵

,当

依次取10,9,8,7,6,5,4,3,2,1时,计算矩阵

“各列元素的和”,并把此求和结果存放为矩阵Sa的第k行。

例如

时,A阵为

,此时它各列元素的和是一个

行数组

,并把它保存为Sa的第3行。

问题:

该段程序的计算结果对吗?

假如计算结果不正确,请指出错误发生的根源,并改正之。

第1章正确理解sum的工作机理。

第1章reshape的应用。

(1)企图用以下程序完成题目要求。

fork=10:

-1:

1

A=reshape(1:

10*k,k,10);

Sa(k,:

)=sum(A);

end

Sa

Sa=

555

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

当前位置:首页 > 法律文书 > 调解书

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

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