计算方法实习报告_第1页
计算方法实习报告_第2页
计算方法实习报告_第3页
计算方法实习报告_第4页
计算方法实习报告_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、一给出一个有效的算法和无效的算法计算积分y(n)=(xn)/(4x+1)dx,n=0,1,2,10,积分限为(0,1) 1 有效算法利用递推公式y(n)=-y(n-1)/4+1/(4n),取y0=(log5)/4程序为:#include#includevoid main() double y0,y1; y0=1/4.0*log(5.0); couty0=y0 ; for(int n=1;n=10;n+) y1=-1.0/4.0*y0+1.0/(4.0*n); coutyn=y1 ; y0=y1; if(n%3=0) coutendl; 其结果为: y0=0. y1=0.14941 y2=0.

2、y3=0.y4=0. y5=0. y6=0.y7=0. y8=0. y9=0.y10=0. Press any key to continue2 无效算法利用递推公式y(n-1)=-4y(n)+1/n, 又由广义积分中值定理可得y(n)=1/(4n+1)(4+1), (0,1),则1/(5(n+1)y(n)1/(n+1), 所以可取y(n)1/(5(n+1)+ 1/(n+1)/2=3/(5(n+1)程序为:#include #includevoid main() float y9,y10; y10=3.0 /55.0; couty10=y10=0;n-) y9=-4.0*y10+1.0/(n+

3、1); coutyn=y9 ; y10=y9; if(n%3=0) coutendl; 其结果为:y10=0. y9=-0.y8=0. y7=-2.21035 y6=8.98427y5=-35.7704 y4=143.282 y3=-572.877y2=2291.84 y1=-9166.86 y0=36668.43 心得体会由有效算法与无效算法的结果可以知道:有效算法的误差的传递是逐步缩小的,而无效算法的误差的传递是逐步扩大的。因此有效算法是数值稳定的算法。二用牛顿法求下列方程lnx+x-2=0的根。1算法 给定初值X0,为根的容许误差,为|F(X)|的容许误差,N为迭代次数的容许值。(1).

4、如果F(X0)的导数等于零或者迭代次数大于N,则算法失败,结束;否则执行2。(2).计算X1=X0-F(X0)/F(X0)。(3).若|X1-X0|,或者|F(X1)|,则输出X1,程序结束,否则执行4。(4).令X0=X1,转向1。2.程序#include#include#define EPS 1e-8#define ETA 1e-8#define N 100float f(float x)return log(x)+x-2;float f1(float x) return 1+1/x;void main()float x1,x0=1.5,d;coutx0=x0 ;for(int i=0;i

5、=N;)if(f1(x0)=0) break;else x1=x0-f(x0)/f1(x0);d=(x1-x0);if(fabs(f(x1)ETA&fabs(d)EPS)coutx1endl; break;elsex0=x1;i+;coutxi=x0 ;while(i%3=0) coutendl;coutThe root of the equation is x=x0endl;3.结果x0=1.5 x1=1.55672x2=1.557151.55715The root of the equation is x=1.557154心得体会通过牛顿迭代算法的编程实习,我了解到牛顿法把非线性方程线性化

6、,加快了收敛速度。三 编写一个用牛顿前插公式计算函数值的程序,要求先输出差分表,再计算x点的函数值,并应用于下面的问题: xi 20 21 22 23 24 yi 1.30103 1.32222 1.34242 1.36173 1.38021求x=21.4时的插值多项式的值。1 算法(1).输入n=4,xi,yi(i=0,1,2,3,4).(2).计算各阶差分f00,f10,f20,f30,f40。(3).计算函数值:f00+f10*t+f20*t*(t-1)/2+f30*t*(t-1)*(t-2)/6+f40*t*(t-1)*(t-2)*(t-3)/24;2 程序#includefloat

7、NewTon(float f00,float f10,float f20,float f30,float f40,float t) return f00+f10*t+f20*t*(t-1)/2+f30*t*(t-1)*(t-2)/6+f40*t*(t-1)*(t-2)*(t-3)/24;void main()float f14,f23,f32,f4; float f05=1.30103,1.32222,1.34242,1.36173,1.38021; float x5=20,21,22,23,24;cout 差分表endl;for(int i=0;i=4;i+)cout xi=xi;coute

8、ndl ; for(i=0;i=4;i+)cout f0i;coutendl1阶差分 ;for(i=0;i=3;i+)f1i=f0i+1-f0i;coutf1i ;coutendl2阶差分 ; for(i=0;i=2;i+)f2i=f1i+1-f1i;coutf2i ;coutendl3阶差分 ; for(i=0;i=1;i+)f3i=f2i+1-f2i;coutf3i ;coutendl4阶差分 ;f4=f31-f30;coutf4endl;float t=21.4-x0;float N4=NewTon(f00,f01,f02,f03,f04,t);coutN(21.4)=N4endl;3

9、结果 差分表 x0=20 x1=21 x2=22 x3=23 x4=24 1.30103 1.32222 1.34242 1.36173 1.380211阶差分 0. 0.0202 0.01931 0.2阶差分 -0. -0. -0.3阶差分 9.98974e-005 6.00815e-0054阶差分 -3.98159e-005N(21.4)=3.482684 心得体会由于此题目选用的节点是等距的,所以可用等距节点的插值公式代替节点的任意分布的牛顿插值公式,这样就可以简化插值公式,同时可以避免作除法运算,而且程序算法的设计也相对比较简单。四 用改进欧拉方法(取h=0.1)求解下列微分方程初值问

10、题:y=(x2+y2),x0,1.0 y(0)=01 算法解一阶常微分方程初值问题y=f(x,y),y(x0)=y0,xa,b,将区间a,b做n等分,取步长h=(b-a)/n.欧拉公式为:y(i+1)=y(i)+hf(x(i),y(i)梯形公式为:y(i+1)=y(i)+hf(x(i),y(i)+ f(x(i+1),y(i+1)/2改进欧拉法,采用公式:(i+1)=y(i)+h f(x(i),y(i)y(i+1)=y(i)+hf(x(i),y(i)+ f(x(i+1),(i+1)/22 程序#include#define N 10float f(float x,float y)return x

11、*x+y*y;void main()float x0=0,y0=0,a=0,b=1.0;float h=(b-a)/N;coutx0=x0 y0=y0endl;float x1=x0,y1=y0;for(int i=0;i=N;)y1=y0+h*f(x0,y0);/*欧拉公式*/x1=x0+h;y1=y0+h*(f(x0,y0)+f(x1,y1)/2;/*梯形公式*/y0=y1;x0=x1;i+;coutxi=x1 yi=y1endl;3 结果x0=0 y0=0x1=0.1 y1=0.0005x2=0.2 y2=0.x3=0.3 y3=0.x4=0.4 y4=0.x5=0.5 y5=0.x6=

12、0.6 y6=0.x7=0.7 y7=0.x8=0.8 y8=0.x9=0.9 y9=0.x10=1 y10=0.35183x11=1.1 y11=0.4 心得体会改进欧拉公式和欧拉公式相比,它们同为单步显式公式,但是前者的局部截断误差比后者的局部截断误差高一阶。欧拉公式具有一阶精度,梯形公式和改进欧拉公式具有二阶精度。五用阿当姆斯方法(取h=0.1)求解下列微分方程初值问题(用四阶龙格-库塔公式提供出发值):y=0.1(x3+y2),x0,1 y(0)=11. 算法概要阿当姆斯方法是一种线性多步法,其四阶显式公式为y(i+1)=y(i)+h(55f(i)-59f(i-1)+37 f(i-2)

13、-9 f(i-3)/24四阶隐式公式为y(i+1)=y(i)+h(9 f(i+1)+19f(i)-5f(i-1)+ f(i-2)/24以上两个公式均具有四阶精度,将它们组成阿当姆斯预测-校正系统:(i+1)=y(i)+h(55f(i)-59f(i-1)+37 f(i-2)-9 f(i-3)/24f(i+1)=f(x(i+1), (i+1)y(i+1)=y(i)+h(9 f(i+1)+19f(i)-5f(i-1)+ f(i-2)/24f(i+1)=f(x(i+1), y(i+1)这是一个四步方法,计算y(i+1)时要用到y(i),y(i-1),y(i-2),y(i-3),因此,它不是自开始的,一

14、般借助于同阶的龙格-库塔公式为其提供出发值:y1,y2,y3.2. 程序#include#include#define N 10float f(float x,float y)return 0.1*(x*x*x+y*y*y);void main()float yy3,y,x,h,a,b,k1,k2,k3,k4,f1;a=0;b=1.0;y=1;x=0;yy0=1;h=(b-a)/N; int i;coutx0=x y0=yendl;for(i=1;i=3;i+) k1=f(x,y); k2=f(x+h/2,y+h*k1/2); k3=f(x+h/2,y+h*k2/2); k4=f(x+h,y+

15、h*k3); y=y+h*(k1+2*k2+2*k3+k4)/6; x=x+h; yyi=y; coutxi=x yi=yendl;for(i=3;i=N;i+)x=a+i*h;y=yy3;yy3=yy3+h*(55*f(x,yy3)-59*f(x-h,yy2)+37*f(x-2*h,yy1)-9*f(x-3*h,yy0)/24;f1=f(x+h,yy3);yy3=y+h*(9*f1+19*f(x,yy3)-5*f(x-h,yy2)+f(x-2*h,yy1)/24;yy0=yy1;yy1=yy2;yy2=yy3;coutxi+1=x yi+1=yy3endl;3结果x0=0 y0=1x1=0.1 y1=1.01016x2=0.2 y2=1.02066x3=0.3 y3=1.03163x4=0.3 y4=1.04353x5=0.4 y5=1.05623x6=0.5 y6=1.07019x7=0.6 y7=1.08579x8=0.7 y8=1.1035x9=0.8 y9=1.1239x10=0.9 y10=1.14766x11=1 y11=1.175564 心得体会阿当姆斯预测-校正公式是将阿当姆斯内插公式与阿当姆斯外插公式相结合而形成的预测校正系统。阿当姆斯外推

温馨提示

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

最新文档

评论

0/150

提交评论