计算方法Word文件下载.docx

上传人:b****7 文档编号:22671261 上传时间:2023-02-05 格式:DOCX 页数:26 大小:263.13KB
下载 相关 举报
计算方法Word文件下载.docx_第1页
第1页 / 共26页
计算方法Word文件下载.docx_第2页
第2页 / 共26页
计算方法Word文件下载.docx_第3页
第3页 / 共26页
计算方法Word文件下载.docx_第4页
第4页 / 共26页
计算方法Word文件下载.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

计算方法Word文件下载.docx

《计算方法Word文件下载.docx》由会员分享,可在线阅读,更多相关《计算方法Word文件下载.docx(26页珍藏版)》请在冰豆网上搜索。

计算方法Word文件下载.docx

上机作业七19

Euler法19

改进Eulaer法19

经典R-K20

上机作业一

第一题

1、分别用不动点迭代与Newton法求解方程

2x-ex+3=0

的正根与负根。

不动点迭代

程序

functiony=g1(x)

y=-x+exp(x)-3;

P0=1;

N=1000;

TOL=10^-5;

k=1;

whilek<

=N

P=g1(P0);

ifabs(P-P0)<

TOL

break

end

k=k+1;

P0=P;

end

disp(P);

disp(k)

结果

-1.3734

36

Newton法求负根

y=x-(2*x-exp(x)+3)/(2-exp(x));

P0=-1;

4

Newton法求正根

1.9239

8

结果分析:

相比使用不动点迭代法时并不能确保收敛性,需要尝试不同的x和g(x),使用牛顿迭代法可以确保收敛性,所以肯定能求出正根和负根,也就是说不动点的收敛域没有牛顿法广泛

第二题

2、用Newton法求解方程x-sinx=0的根.再用Steffensen’smethod加速其收敛。

Newton法

functiony=g2(x)

y=x-(x-sin(x))/(1-cos(x));

%用Newton求根

N=600;

TOL=10^(-10);

fork=1:

N

P1=g2(P0);

ifabs(P1-P0)<

P0=P1;

end

disp(P2);

结果0.6551

45

Steffensen

p0=1;

functiony=f(x)

y=x-sin(x);

TOL=10^(-7);

n=0;

p

(1)=p0;

whilen<

fork=1:

2

p(k+1)=g2(p(k));

p1=p

(1)-(p

(2)-p

(1))^2/(p(3)-2*p

(2)+p

(1));

f0=f(p1);

ifabs(f0)<

n=n+1;

p

(1)=p1;

disp(p1);

disp(n)

1.6548e-06

1

上机作业二

1、分别用Jacobi、Seidel、Sor(w=1.1,1.2,1.3,1.4,1.5)方法求解

方程组Ax=b,这里

A=

,b=

X0=

;

e=10-5

解:

jacobi迭代法

程序:

A=ones(10,10)-13*eye(10);

b=-1*ones(10,1);

tol=10^(-5);

N=500;

x0=zeros(10,1);

x=x0;

fori=1:

10

x(i)=(b(i)-A(i,:

)*x0)/A(i,i)+x0(i);

ifnorm(x-x0)<

tol

disp(X);

disp(k)

return

x0=x;

disp('

发散'

结果:

seidel迭代法

)*x)/A(i,i)+x(i);

disp(x);

return;

disp('

Sor迭代法

w=1.1;

x(i)=w*(b(i)-A(i,:

W=1.2时

W=1.3时

W=1.4时

W=1.5时

在以上三种方法都收敛的前提下,Sor方法求解收敛速度最快,Seidel次之,而Jacobi方法收敛速度最慢。

上机作业三

1、用Newton法与最速下降法求方程组

x2+2y2-2=0

X2=y

在(0.8,0.7)附近的根。

x0=[0.8,0.7];

F=[x0

(1)^2+2*x0

(2)^2-2;

x0

(1)^2-x0

(2)];

F1=[2*x0

(1),4*x0

(2);

2*x0

(1),-1];

y=-F1\F;

ifnorm(y)<

tol;

最速下降法

functiony=h(t)

globalX0

g=G1(X0);

a=X0-g*t;

y=G(a);

functiony=G(A)

y=(A

(1)^2+2*A

(2)^2-2)^2+(A

(1)^2-A

(2))^2;

functiony=G1(A)

y(1,1)=8*A

(1)^3+8*A

(1)*A

(2)^2-8*A

(1)-4*A

(1)*A

(2);

y(2,1)=16*A

(2)^3-14*A

(2)-2*A

(1)^2+8*A

(1)^2*A

(2);

Tol=10^-5;

X0=[0.8;

0.7];

g=G1(X0);

u=fminsearch('

h'

0,100);

X=X0-u*g;

ifG(X)<

Tol

disp(k);

X0=X;

上机作业四

1、用幂法与反幂法求矩阵A的按模最大、最小特征值与对应的特征向量。

幂法

程序;

A=[4111;

13-11;

1-120;

1102];

v=[1;

1;

1];

lamda=0;

err=1;

while(k<

=N&

&

err>

eps)

u=A*v;

[mj]=max(abs(u));

dc=abs(lamda-m);

u=u/m;

dv=norm(u-v);

err=max(dc,dv);

v=u;

lamda=m;

k=k+1;

特征值='

);

disp(lamda);

特征向量='

disp(u);

迭代次数='

反幂法

13-11;

1-120;

1102];

A1=inv(A);

u=A1*v;

幂法求最大特征值算法简单,而反幂法则是求矩阵逆矩阵的最大特征值,收敛速度较快。

2、用House-holder变换求矩阵A的QR分解,并用QR方法做三次迭代。

n=size(A);

Q=eye(n);

n-1

c=norm(A(k:

n,k));

w=zeros(n,1);

w(k+1:

n)=A(k+1:

n,k);

w(k)=A(k,k)+sign(A(k,k))*c;

P=eye(n)-2*w*w'

/norm(w)^2;

Q=Q*P;

A=P*A;

R=A;

Q='

disp(Q);

P='

disp(P)

3次迭代

N=1;

whileN<

=3

c=norm(A(k:

w=zeros(n,1);

w(k+1:

w(k)=A(k,k)+sign(A(k,k))*c;

P=eye(n)-2*w*w'

Q=Q*P;

A=P*A;

A=A*Q;

N=N+1;

R=A*inv(Q);

上机作业五

1、目的:

观察lagrange插值的Runge现象。

对于函数

进行lagrange插值。

取不同的等分数n(n=5,n=10),

将区间[-1,1]n等分,取等距节点。

把插值多项式的曲线画在同一张图上进行比较。

forn=5:

5:

x=zeros(1,n+1);

y=zeros(1,n+1);

h=2/n;

(n+1)

x(i)=-1+(i-1)*h;

y(i)=1/(1+25*x(i)*x(i));

symsfx

fy=0;

n+1

t=1;

ifi~=k;

t=t*(fx-x(i))/(x(k)-x(i));

fy=fy+t*y(k);

ezplot(fy,[-1,1]);

holdon

ezplot(fy,[-1,1]);

上机作业六

1、用Romberg求积公式计算积分:

精度达到10^(-6)。

a=1;

b=3;

eps=10^-6;

M=1;

h=2;

j=0;

R=zeros(4,4);

R(1,1)=h*(exp

(1).*cos

(1)+exp(3).*cos(3))/2;

while(err>

j=j+1;

h=h/2;

x=a+h:

2*h:

b-h;

R(j+1,1)=R(j,1)/2+h*sum(exp(x).*cos(x));

forK=1:

min(3,J)

R(j+1,K+1)=R(j+1,K)+(R(j+1,K)-R(j,K))/(4^K-1);

if(j>

3)

err=abs(R(j+1,4)-R(j,4));

quad=R(j,4);

disp(quad);

上机作业七

1、分别用Euler方法(h=0.025)、改进的Euler方法(h=0.05)、经典的R-K方法(h=0.1)求初值问题的数值解计算0.1,0.2,0.3,0.4,0.5处解的近似值。

并与精确解比较,分析误差。

Euler法

x=0;

y=0.5;

h=0.025;

f=inline('

y-x^2+1'

'

x'

y'

fori=0:

20

y=y+h*f(x,y);

x=x+h;

if(i==3||i==7||i==11||i==15||i==19)

disp(y);

>

euler

0.65550.82531.00891.20561.4147

精确值:

0.65740.82931.01511.21411.4256

误差:

0.00190.0040.00620.00850.0109

改进Eulaer法

h=0.05;

y1=y+h*f(x,y);

y2=y+h*f(x,y1);

y=(y1+y2)/2;

if(i==1||i==3||i==5||i==7||i==9)

disp(y);

gaijinEuler

0.65730.82911.01471.21361.4250

0.65740.82931.01511.21411.4256

0.00010.00020.00040.00050.0006

经典R-K

h=0.1;

k1=h*f(x,y);

k2=h*f(x+h/2,y+k1/2);

k3=h*f(x+h/2,y+k2/2);

k4=h*f(x+h,y+k3);

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

if(i==0||i==1||i==2||i==3||i==4)

End

R-K:

00000

通过对误差的分析可以看出,用Euler法、改进Euler法、经典R-K法解决同一初值问题,经典R-K法效果最好、精度最好,改进Euler法次之,Euler法最差。

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

当前位置:首页 > 工程科技 > 环境科学食品科学

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

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