数值分析第五章答案.docx

上传人:b****4 文档编号:4634610 上传时间:2022-12-07 格式:DOCX 页数:13 大小:18.01KB
下载 相关 举报
数值分析第五章答案.docx_第1页
第1页 / 共13页
数值分析第五章答案.docx_第2页
第2页 / 共13页
数值分析第五章答案.docx_第3页
第3页 / 共13页
数值分析第五章答案.docx_第4页
第4页 / 共13页
数值分析第五章答案.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

数值分析第五章答案.docx

《数值分析第五章答案.docx》由会员分享,可在线阅读,更多相关《数值分析第五章答案.docx(13页珍藏版)》请在冰豆网上搜索。

数值分析第五章答案.docx

数值分析第五章答案

数值分析第五章答案

【篇一:

数值分析第五版计算实习题】

第二章

2-1

程序:

clear;clc;

x1=[0.20.40.60.81.0];

y1=[0.980.920.810.640.38];

n=length(y1);

c=y1(:

);

orj=2:

n%求差商

fori=n:

-1:

j

c(i)=(c(i)-c(i-1))/(x1(i)-x1(i-j+1));

end

end

symsxdfd;

df

(1)=1;d

(1)=y1

(1);

fori=2:

n%求牛顿差值多项式

df(i)=df(i-1)*(x-x1(i-1));

d(i)=c(i)*df(i);

end

disp(4次牛顿插值多项式);

p4=vpa(collect((sum(d))),5)%p4即为4次牛顿插值多项式,并保留小数点后5位数pp=csape(x1,y1,variational);%调用三次样条函数

q=pp.coefs;

disp(三次样条函数);

fori=1:

4

s=q(i,:

)*[(x-x1(i))^3;(x-x1(i))^2;(x-x1(i));1];

s=vpa(collect(s),5)

end

x2=0.2:

0.08:

1.08;

dot=[121112];

figure

ezplot(p4,[0.2,1.08]);

holdon

y2=fnval(pp,x2);

x=x2(dot);

y3=eval(p4);

y4=fnval(pp,x2(dot));

plot(x2,y2,r,x2(dot),y3,b*,x2(dot),y4,co);

title(4次牛顿插值及三次样条);

结果如下:

4次牛顿插值多项式

p4=-0.52083*x^4+0.83333*x^3-1.1042*x^2+0.19167*x+0.98三次样条函数

x∈[0.2,0.4]时,s=-1.3393*x^3+0.80357*x^2-0.40714*x+1.04x∈[0.4,0.6]时,s=0.44643*x^3-1.3393*x^2+0.45*x+0.92571x∈[0.6,0.8]时,s=-1.6964*x^3+2.5179*x^2-1.8643*x+1.3886x∈[0.8,1.0]时,s=2.5893*x^3-7.7679*x^2+6.3643*x-0.80571输出图如下

2-3

(1)

程序:

clear;

clc;

x1=[01491625364964];

y1=[012345678];%插值点

n=length(y1);

a=ones(n,2);

a(:

2)=-x1;

c=1;

fori=1:

n

c=conv(c,a(i,:

));

end

q=zeros(n,n);

r=zeros(n,n+1);

fori=1:

n

[q(i,:

),r(i,:

)]=deconv(c,a(i,:

));%wn+1/(x-xk)

end

dw=zeros(1,n);

fori=1:

n

dw(i)=y1(i)/polyval(q(i,:

),x1(i));%系数

end

p=dw*q;

symsxl8;

fori=1:

n

l8(i)=p(n-i+1)*x^(i-1);

end

disp(8次拉格朗日插值);

l8=vpa(collect((sum(l8))),5)

xi=0:

64;

yi=polyval(p,xi);

figure

plot(xi,yi,x1,y1,r*);

holdon

title(8次拉格朗日插值);

结果如下:

8次拉格朗日插值

l8=-3.2806e-10*x^8+6.7127e-8*x^7-5.4292e-6*x^6+0.00022297*x^5-0.0049807*x^4+0.060429*x^3-0.38141*x^2+1.3257*x

输出图如下:

第五章

4-1(3)

程序:

clc;

clear;

y=@(x)sqrt(x).*log(x);

a=0;b=1;tol=1e-4;

p=quad(y,a,b,tol);

fprintf(采用自适应辛普森积分结果为:

%d\n,p);

结果如下:

采用自适应辛普森积分结果为:

-4.439756e-01

第九章

9-1

(a)程序:

clc;

clear;

a=1;b=2;%定义域

h=0.05;%步长

n=(b-a)/h;

y0=1;%初值

f=@(x,y)1/x^2-y/x;%微分函数

xn=linspace(a,b,n+1);%将定义域分为n等份yn=zeros(1,n);%结果矩阵

yn

(1)=y0;%赋初值

%以下根据改进欧拉公式求解

fori=1:

n

xn=xn(i);

xnn=xn(i+1);

yn=yn(i);

yp=yn+h*f(xn,yn);

yc=yn+h*f(xnn,yp);

yn=(yp+yc)/2;

yn(i+1)=yn;

end

xn=yn;

%以下根据经典四阶r-k法公式求解

fori=1:

n

xn=xn(i);

yn=yn(i);

k1=f(xn,yn);

k2=f(xn+h/2,yn+h/2*k1);

k3=f(xn+h/2,yn+h/2*k2);

k4=f(xn+h,yn+h*k3);

yn=yn+h/6*(k1+2*k2+2*k3+k4);

yn(i+1)=yn;

end

disp(改进欧拉法四阶经典r-k法);disp([xnyn])

结果如下:

改进欧拉法四阶经典r-k法11

0.998870.99885

0.995770.9978

0.991140.99694

0.985320.99634

0.978570.99603

0.971110.99606

0.963110.99645

0.95470.99723

0.945980.99841

0.937051

0.927981.002

0.918831.0044

0.909641.0073

0.900451.0106

0.891291.0143

0.882181.0184

0.873151.0229

0.864211.0278

0.855381.0331

0.846651.0388

(b)程序:

clc;

clear;

a=0;b=1;%定义域

h=[0.10.0250.01];%步长

y0=1/3;%初值

f=@(x,y)-50*y+50*x^2+2*x;%微分函数xi=linspace(a,b,11);

y=1/3*exp(-50*xi)+xi.^2;%准确解ym=zeros(1,11);

forj=1:

3

【篇二:

数值分析(第五版)计算实习题第五章作业】

题:

lu分解法:

建立m文件

functionh1=zhijielu(a,b)%h1各阶主子式的行列式值

[nn]=size(a);ra=rank(a);

ifra~=n

disp(请注意:

因为a的n阶行列式h1等于零,所以a不能进行lu分解。

a的秩ra如下:

)ra,h1=det(a);

return

end

ifra==n

forp=1:

n

h(p)=det(a(1:

p,1:

p));

end

h1=h(1:

n);

fori=1:

n

ifh(1,i)==0

disp(请注意:

因为a的r阶主子式等于零,所以a不能进行lu分解。

a的秩ra和各阶顺序主子式h1依次如下:

h1;ra

return

end

end

ifh(1,i)~=0

disp(请注意:

因为a的r阶主子式都不等于零,所以a能进行lu分解。

a的秩ra和各阶顺序主子式h1依次如下:

forj=1:

n

u(1,j)=a(1,j);

end

fork=2:

n

fori=2:

n

forj=2:

n

l(1,1)=1;l(i,i)=1;

ifij

l(1,1)=1;l(2,1)=a(2,1)/u(1,1);l(i,1)=a(i,1)/u(1,1);

l(i,k)=(a(i,k)-l(i,1:

k-1)*u(1:

k-1,k))/u(k,k);

else

u(k,j)=a(k,j)-l(k,1:

k-1)*u(1:

k-1,j);

end

end

end

end

h1;ra,u,l,x=inv(u)*inv(l)*b

end

end

输入:

a=[10-701;-32.09999962;5-15-1;2102];

b=[8;5.900001;5;1];

h1=zhijielu(a,b)

输出:

请注意:

因为a的r阶主子式都不等于零,所以a能进行lu分解。

a的秩ra和各阶顺序主子式h1依次如下:

ra=

4

u=

10.0000-7.000001.0000

02.10006.00002.3000

00-2.1429-4.2381

0-0.0000012.7333

l=

1.0000000

-0.30001.000000

0.50001.19051.0000-0.0000

0.20001.14293.20001.0000

x=

-0.2749

-1.3298

1.2969

1.4398

h1=

10.0000-0.0000-150.0001-762.0001

列主元高斯消去法:

建立m文件

function[ra,rb,n,x]=liezhu(a,b)

b=[ab];n=length(b);ra=rank(a);rb=rank(b);zhicha=rb-ra;

ifzhicha0

disp(请注意:

因为ra~=rb,所以方程组无解)

return

warningoffmatlab:

return_outside_of_loop

end

ifra==rb

ifra==n

disp(请注意:

因为ra=rb,所以方程组有唯一解)

x=zeros(n,1);c=zeros(1,n+1);

forp=1:

n-1

[y,j]=max(abs(b(p:

n,p)));c=b(p,:

);

b(p,:

)=b(j+p-1,:

);b(j+p-1,:

)=c;

fork=p+1:

n

m=b(k,p)/b(p,p);

b(k,p:

n+1)=b(k,p:

n+1)-m*b(p,p:

n+1);

end

end

b=b(1:

n,n+1);a=b(1:

n,1:

n);x(n)=b(n)/a(n,n);

forq=n-1:

-1:

1

x(q)=(b(q)-sum(a(q,q+1:

n)*x(q+1:

n)))/a(q,q);

end

else

disp(请注意:

因为ra=rbn,所以方程组有无穷多解)

end

end

输入:

a=[10-701;-32.09999962;5-15-1;2102];

b=[8;5.900001;5;1];

[ra,rb,n,x]=liezhu(a,b),h=det(a)

输出:

请注意:

因为ra=rb,所以方程组有唯一解

ra=

4

rb=

4

n=

4

x=

0.0000

-1.0000

1.0000

1.0000

h=

-762.0001

第二题:

建立列主元高斯消去法m文件(题一中已有)

(1)输入:

formatcompact

a=[3.016.031.99;1.274.16-1.23;0.987-4.819.34];

b=[1;1;1];

[ra,rb,n,x]=liezhu(a,b),h=det(a),c=cond(a)

输出:

请注意:

因为ra=rb,所以方程组有唯一解

ra=

3

rb=

n=

3

x=

1.0e+03*

1.5926

-0.6319

-0.4936

h=

-0.0305

c=

3.0697e+04

(2)输入:

a=[3.006.031.99;1.274.16-1.23;0.990-4.819.34];

b=[1;1;1];

[ra,rb,n,x]=liezhu(a,b),h=det(a)

输出:

请注意:

因为ra=rb,所以方程组有唯一解

ra=

3

rb=

3

n=

3

x=

119.5273

-47.1426

-36.8403

h=

-0.4070

第三题:

输入:

clear

a=[10787;7565;86109;75910];

b=[32233331]’;

da=det(a),lamda=eig(a),ac2=cond(a,2)

输出:

da=

1.0000

lamda=

0.0102

0.8431

3.8581

30.2887

2.9841e+03

下面分析误差性态:

建立m文件:

functionacp=pjwc(a,ja,b,jb,p)

%acp矩阵a的p条件数cond

%pjwc:

p范数解的误差性态分析

acp=cond(a,p);da=det(a);x=a\b;

deltaa=ja-a;

pnda=norm(deltaa,p);deltab=jb-b;

pndb=norm(deltab,p);

ifpndb0

jx=a\jb;pnb=norm(b,p);pnjx=norm(jx,p);deltax=jx-x;

pnjdx=norm(deltax,p);jxx=pnjdx/pnjx;

pnx=norm(x,p);xx=pnjdx/pnx;

pndb=norm(deltab,p);xab=pndb/pnb;pnbj=norm(jb,p);xabj=pndb/pnbj;

xgxx=acp*xab;

end

ifpnda0

jx=ja\b;deltax=jx-x;pnx=norm(x,p);

pnjdx=norm(deltax,p);

pnjx=norm(jx,p);jxx=pnjdx/pnjx;xx=pnjdx/pnx;

pnja=norm(ja,p);pna=norm(a,p);

pnda=norm(deltaa,p);xabj=pnda/pnja;xab=pnda/pna;

xgxx=acp*xab;

end

if(acp50)(da0.1)

disp(请注意:

ax=b是病态的,a的p条件数acp,a的行列式值da,解x,近似解jx,解的相对误差xx,解的相对误差估计xgxx,b或a的相对误差xab依次如下:

acp,da,x,jx,xx,jxx,xgxx,xab,xabj

else

disp(请注意:

ax=b是良态的,a的p条件数acp,a的行列式值da,解x,近似解jx,解的相对误差xx,解的相对误差估计xgxx,b或a的相对误差xab依次如下:

acp,da,x,jx,xx,jxx,xgxx,xab,xabj

end

输入:

ja=[1078.17.2;7.085.0465;85.989.899;6.99599.98];

jb=b;p=2;

acp=pjwc(a,ja,b,jb,p)

输出:

请注意:

ax=b是良态的,a的p条件数acp,a的行列式值da,解x,近似解jx,解的相对误差xx,解的相对误差估计xgxx,b或a的相对误差xab依次如下:

acp=

【篇三:

李庆扬-数值分析第五版第5章与第7章习题答案】

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

当前位置:首页 > 经管营销 > 人力资源管理

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

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