数值计算实验报告

上传人:油*** 文档编号:174686433 上传时间:2022-12-16 格式:DOCX 页数:17 大小:405.40KB
收藏 版权申诉 举报 下载
数值计算实验报告_第1页
第1页 / 共17页
数值计算实验报告_第2页
第2页 / 共17页
数值计算实验报告_第3页
第3页 / 共17页
资源描述:

《数值计算实验报告》由会员分享,可在线阅读,更多相关《数值计算实验报告(17页珍藏版)》请在装配图网上搜索。

1、线性方程的数值解法一、课题名称:二分法求解非线性方程二、引言: 目的:求方程 f(x)=0 的根 二分法所使用的方法主要是介值定理,它的基本思想是逐步缩小根存在的 区间,搜索根所在的位置许多实际算法表现为某种无穷递推过程的阶段,实现这类算法,不但需要 建立计算公式,还需要解决精度控制问题,而我们下面介绍的二分法就是用来解 决这一类问题,它是电子计算机上一种常用的算法。三、算法:首先,满足f(a)f(b)0,给定 (根的容许误差)或6 (|f(x)|的容许误差)。1、对分【a,b】取x=(a+b)/2,计算f(x );02、若 |b-a|,或 |f( x )|0 , 则【 a ,b 】 =【 x

2、 ,b】0 1 1 0b 一 a =(b-a)/2114 、转向 1 ,重复上述步骤。四、结构程序设计(求x3-x-1二0的根)program mainimplicit nonereal : a=1.0000real : b=1.5000real,parameter : c=0.0050real x,y0,ydo while( b-a=c) y0=a*3-a-1 x=(a+b)/2 y=x*3-x-1if( y*y00) thena=xelseb=xend ifwrite (*,*)x,yend dostopend五、结果及讨论分析1、结果:2、误差分析:第 k 次二分后,则在二分过程中可以获

3、得一个近似根的序列 x0,x1, x2,.,该序列以根x *为极限在实际计算时,人们不可能也没有必要完成这种无穷过程,因为计算结果允 许带有一点的误差。由于I 1( b - a )=2 k k只要二分足够多次(即k充分大),便有1 x* xk |e这里8为预定精度,数值计算中的近似是正常的,计算误差是不可避免的。3、收敛性分析:对于二分法,只要能够保证在给定的区间内有根,使能够收敛的,当时收敛 的速度和给定的区间有关,而且总体上来说速度比较慢。牛顿法(程序见附),收 敛速度要比二分法快,但是最终其收敛的结果与初值的选取有关,初值不同,收 敛的结果也可能不一样,也就是结果可能不时预期需要得结果。

4、4、算法评价:就二分法来说,它的优点有程序简单、方法可靠、收敛;缺点有无法解决多 根、复根、一个切点的问题。附:1、简单迭代结构程序设计(求x3 - x -1二0的根):program main implicit none real:x0 integer:k real:x1 integer,parameter:N=9 real,external:f k=0 x0=1.5 do while(k=N) write(*,*)k,x0 x0=f(x0) k=k+1end do function f(x) real:x,f f=(x+1)*(real(1)/real(3) return end2、牛顿迭

5、代结构程序设计(求):program main implicit none real:x0,x1,x2 real,parameter :a=0.000005 integer k integer,parameter : n=20 read(*,*)x0 x1=2*x0 if(x1/=0) thendo k=0,n write (*,*)k,x0 x2=x0-(x0*2-115)/x1 if(abs(x2-x0)a) then exitelse if(k/=n) then x0=x2end ifend doelsewrite(*,*)cuowuend ifstopend3、埃特金算法结构流程图(求

6、x= ex在X=O.5附近的根):program main implicit none real x0,x1,x2 real,parameter :a=0.0000005 integer kinteger,parameter : n=20 read(*,*)x0do k=0,nx1=exp(-x0)x2=exp(-x1) x2=x2-(x2-x1)*2/(x2-2*x1+x0) write (*,*)k,x1,x2,x0 if(abs(x2-x0)a) then exitelse if(k/=n) thenx0=x2end ifend dostopend线性方程组的迭代法一、课题名称:雅可比迭

7、代法求解线性方程组二、引言:雅可比迭代的目的是利用此方法计算出线性方程组符合一定精度的解,它的基本思想是将联立方程组的求解,归结为重复计算一组彼此独立的线性表达式, 雅可比迭代的意义:在科学计算与工程计算中,线性方程组会经常遇到,因 此,线性方程组的解法在数值分析中占有极其重要的地位。三、算法:考察一般形式的线性方程组ij=bi , i=1,2, ,n(1)设从式(1)中分离出变量xi,将它改写成b -f7iJj ij主i据此建立的迭代公式biaiiaxij,i=l,2,n(2)x (k + 1)iaii(k)j, i=1,2, , n (3)当相邻两次迭代结果的偏差小于给定精度时计算结束。四

8、、结构程序设计:计算线性方程组:10 x -1x +1 x 1x 2 x = 7.22310 x 2 x = 8 .323x + 5 x = 4 .223program mainimplicit none real:c=0.0005 integer,parameter:n=3integer,parameter:m=3real:x(n)=(/0,0,0/)real:y(n)=(/0,0,0/)real:a(n,m)=(/10,-1,-1,-1,10,-1,-2,-2,5/)real:b(n)=(/7.2,8.3,4.2/)integer:i,j,kinteger:g=30do k=1,gwrit

9、e(*,*)k,x(1),x(2),x(3)do i=1,3do j=1,3 if(i-j)/=0) then y(i)=a(i,j)*x(j)+y(i) end ifend do y(i)=(b(i)-y(i)/a(i,i)end do if(max(abs(y(1)-x(1),abs(y(2)-x(2),abs(y(3)-x(3)c) then exit elsedo i=1,3 x(i)=y(i) y(i)=0end doend ifend do stop end五、结果及讨论分析1、结果:2、误差及收敛性分析:雅可比迭代是用新值和老值的偏差e二max I x - y I来刻画精度的,在

10、迭代过 1i ni程中,设置了一个 N 控制计算量,来防止迭代过程不收敛(发散),或是收敛速 度过于缓慢。若是在 N 次迭代过程中还未打到精度要求,则说明此次迭代失败。 3、算法评价:此算法优点是比较简单,而且编制程序也比较容易,而此迭代法的缺点即是 它要求方程组的系数矩阵是对角占优的,这样才保证迭代过程的收敛性,而发散 的迭代过程是没有用的。附: 高斯赛德尔迭代结构程序设计: program main implicit none real:c=0.0005integer,parameter:n=3 integer,parameter:m=3real:x(n)=(/0,0,0/)real:y(

11、n)=(/0,0,0/) real:a(n,m)=(/10,-1,-1,-1,10,-1,-2,-2,5/)real:b(n)=(/7.2,8.3,4.2/)integer:i,j,k integer:g=30 do k=1,gwrite(*,*)k,x(1),x(2),x(3)do i=1,3do j=1,3 if(i-j)/=0) then y(i)=a(i,j)*x(j)+y(i)end ifend doy(i)=(b(i)-y(i)/a(i,i)x(i)=y(i)y(i)=0end do if(max(abs(y(1)-x(1),abs(y(2)-x(2),abs(y(3)-x(3)a

12、bs(d)then d=a(i,k) l=i end ifend doif(d/=0) then do j=k,n if(l/=k)then t=a(l,j) a(l,j)=a(k,j) a(k,j)=t end if end do t=b(k) b(k)=b(l) b(l)=t end if do j=k+1,n a(k,j)=a(k,j)/a(k,k) end do b(k)=b(k)/a(k,k) do i=k+1,n do j=k+1,n a(i,j)=a(i,j)-a(i,k)*a(k,j) end do b(i)=b(i)-a(i,k)*b(k) end do end do do

13、i=n-1,1,-1 f=0do j=i+1,nf=f+a(i,j)*b(j)end do b(i)=b(i)-f end do write(*,*)b(1),b(2) end回-F:zhu2Debu gVhu2.exe1.00010009999000Press any key to continues.A常微分方程的差分方法一、课题名称:用向前欧拉方法求解常微分方程二、引言: 常微分方程的差分方法的基本思想是:差分方法是一类重要的数值解法。这类方法是要寻求一系列离散节点上的近似解,y , y ,y,y。相邻两个1 2 k n节点的间距h= xk -xk_称为步长,如不特定声明,则假定h为常数

14、。初值问题的各种差分方法有个基本特点,它们都采取“步进式”,即求解过程顺 着节点排列的次序一步一步向前推进。描述这类算法,只要给出从已知信息yn,yn-iyn-2计算yn+i的递推公式,这类计算公式统称差分格式。三、算法: 向前欧拉格式构造:y(x )二 fx , y(x )nn ny(x )二 lim y(Xn+ h - y(Xn) u y(Xn+h) _ 1)nnnn故有:y(x ) u y(x )+hfx , y(x )n +1nn n四、结构程序设计 向前欧拉:Program mainimplicit none real:a,b,h,x,y,y0=1.0 integer:n,k=10

15、a=0.0 b=1.0h=(b-a)/ky=y0do n=0,k-1x=a+n*hy=y+h*(y-(2.0*x)/y) write(*,*)x+h,y end do end五、结果及讨论分析1、结果:2、误差分析:在y为准确,即在y = y(x )的前提下估计的误差y(x ) - y称为局部截 nnnn+1n+1断误差。称一种数值方法的精度是p阶的,如果其局部截断误差为O(hp+1)。对于向 前欧拉格式,假定y二y(x ),则nny 二 y(x ) + hf x , y(x )二 y(x ) + y(x )n +1nn nnn按泰勒公式h2y(x ) = y(x ) + hy(x ) + y

16、() x e =e) then y=y1y=y0+h*(y1-2.0*x/y1) end ify0=y write(*,*)x,y end do end2、两步欧拉: program main implicit none real : a,b,y0,y1,h,y,x integer : n,k=10a=0.0000b=1.0000y0=1.0000h=(b-a)/k y1=y0+h*(y0-(2.0*a)/y0) write(*,*) a,y0 write(*,*) a+h,y1 do n=1,k-1 x=a+n*hy=y0+2.0*h*(y1-(2.0*x)/y1) y0=y1y1=ywri

17、te(*,*) x+h,yend do end3、梯形欧拉: program main implicit none real:a,b,y0,x,y,y1,e,h integer:n,k a=0.0 b=1.0 k=10 e=0.0001 y0=1.0h=(b-a)/kdo n=0,k-1 x=a+n*h y1=y0+h*(y0-2*x/y0) y=y0+h*(y0-2*x/y0)+(y1-2*(x+h)/y1)/2 if (abs(y-y1)=e)theny1=y y=y0+h*(y0-2*x/y0)+(y1-2*(x+h)/y1)/2 end ify0=y write(*,*)x+h,y end do end

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!