资源描述:
《数值分析计算方法程序汇总》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、(一)秦九韶法例:已知p=2x2-3x-4,求x=1时,p=?程序:#include"stdio.h"voidmain(){floata[50],b,x;intn,i,k;scanf("%d%f",&n,&x);for(i=0;i<=n;i++)scanf("%f",&a[i]);b=a[0];k=1;while(k<=n){b=x*b+a[k];k=k+1;}printf("%f",b);}结果:-5.000000(二)复化中矩形公式例:求=[g(y1)+g(y2)+···+g(ym)]h的值(已知g(y)
2、=yn/2-1e-y/2,n=11,h=0.1,ym=20)。程序:#include"stdio.h"#includemain(){doubley,h,s;intn,i;n=11;h=0.1;s=0;y=0;for(i=0;i<=200;i++){y=y+h;s=s+pow(y,n/2.0-1)*exp(-y/2.0);}s=s*h;printf("%f",s);}结果:2266.139467(三)复化梯形公式例:求程序:#include"stdio.h"voidmain(){double
3、a,b,s,h,x;inti,n;a=-1.0;b=1.0;n=10;h=(b-a)/n;x=a;s=x*x/2;for(i=1;i4、y)/2;for(i=1;i<=n;i++){s=s+x*x*x+4*c*c*c+y*y*y;x=x+h;y=y+h;c=c+h;}s=s*h/6;printf("s=%f",s);}结果:s=0.250000(五)复化高斯公式例:求程序:#include#includemain(){doublea,b,h,s,x1,x2;inti,n;a=0;b=2;n=20;s=0;h=(b-a)/n;for(i=0;i5、;x2=a+i*h+h/2*(1-1/1.732);s=s+x1*x1*x1+x2*x2*x2;}s=h/2*s;printf("s=%f",s);}结果:s=4.000000(六)二维中矩形公式例:求程序:#include#includemain(){doublea,b,c,d,x[50],y[50],hx,hy,s;inti,j,n,k;a=0.0;b=1.0;c=0.0;d=1.0;n=k=10;hx=(b-a)/n;hy=(d-c)/k;x[0]=a+hx/2;y
6、[0]=c+hy/2;s=0.0;for(j=0;jmain(){doublex,xl,y,yl;inti,j;x=0.5;xl=x;y=0.5;yl=y;for
7、(i=0;;i++){x=x*x;if(fabs(xl-x)<0.0001)break;elsexl=x;}for(j=0;;j++){y=sqrt(y);if(fabs(yl-y)<0.0001)break;elseyl=y;}printf("x=%f,y=%f",x,y);}结果:x=0.000000,y=0.999915(八)牛顿迭代法y=f(x),求f(x*)=0。y-y0=f'(x0)(x-x0)-y0=f'(x0)(x1-x0)x1=x0-f(x0)/f'(x0).......xn+1=xn-
8、f(xn)/f'(xn)例:求f(x)=x-x2的零点(已知x0=0.1)。程序:#include"stdio.h"#includemain(){doublex,xl;inti;x=0.1;xl=x;for(i=0;;i++){x=x-(x-x*x)/(1-2*x);if(fabs(xl-x)<0.0001)break;elsexl=x;}printf("x=%f",x);}结果:x