北航-MATLAB教程答案(张志涌).doc

上传人:wj 文档编号:30869854 上传时间:2024-09-12 格式:DOC 页数:19 大小:301KB
下载 相关 举报
北航-MATLAB教程答案(张志涌).doc_第1页
第1页 / 共19页
北航-MATLAB教程答案(张志涌).doc_第2页
第2页 / 共19页
北航-MATLAB教程答案(张志涌).doc_第3页
第3页 / 共19页
北航-MATLAB教程答案(张志涌).doc_第4页
第4页 / 共19页
北航-MATLAB教程答案(张志涌).doc_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

北航-MATLAB教程答案(张志涌).doc

《北航-MATLAB教程答案(张志涌).doc》由会员分享,可在线阅读,更多相关《北航-MATLAB教程答案(张志涌).doc(19页珍藏版)》请在冰豆网上搜索。

北航-MATLAB教程答案(张志涌).doc

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

1.5e3

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

abcd-2 xyz_3 3chan a变量 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

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

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

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

clf 清除当前图形。

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

第二章

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

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

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

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

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

3

(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

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))等来观察。

l理解准确符号数值的创建法。

l高精度误差的观察。

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

1.047197551196597631317786181171

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

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

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

6求的符号解,并进而用该符号解求,,的准确值。

lsymsum,subs的应用。

l从实例中,感受指令所给出的关于符号解的含义。

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]

7对于,求。

(提示:

理论结果为)

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

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)

〖注意〗

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

n约束一:

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

n情况二:

-(x-1)0 此为“约束”,满足题意。

8

(1)通过符号计算求的导数。

(2)然后根据此结果,求和。

ldiff,limit指令的应用。

l如何理解运行结果。

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位有效数字的积分值。

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

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

(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

10计算二重积分。

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

symsxy

f=x^2+y^2;

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

r=

1006/105

11在区间,画出曲线,并计算。

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

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

l初步尝试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

12在的限制下,求的一般积分表达式,并计算的32位有效数字表达。

l一般符号解与高精度符号数值解。

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

13求方程的解。

lsolve指令中,被解方程的正确书写,输出量的正确次序。

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)

14求微分方程的通解,并绘制任意常数为1时解的图形。

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

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

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

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

(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

15求一阶微分方程的解。

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

lpretty指令的使用。

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

16求边值问题的解。

(注意:

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

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

[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及解答

6要求在闭区间上产生具有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

1由指令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

1已知矩阵,运行指令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

1在时间区间[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

1先运行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

1先运行指令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章非数N

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

当前位置:首页 > 初中教育 > 初中作文

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

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