资源描述:
《数值计算C语言常用小程序文件.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、....1、秦九韶算法2、二分法3、拉格朗日插值4、埃特金算法5、复化梯形法6、复化辛甫生算法7、二阶龙格库塔方法8、四阶龙格库塔方法 9、改进的欧拉方法 10、迭代法 11、埃特金加速方法:12、牛顿迭代法 13、追赶法 14、雅克比迭代 15、蛋白质设计:17高斯消去法: 1、秦九韶算法P11.3利用秦九韶算法求多项式,在x=3时的值。程序:#include#includevoidmain(){floata[100],v,x;intn,i,k;scanf("%d%f",&n,&x);for(i=0;i<=n;i++)scanf("%f",&a[i]);
2、v=a[n];k=1;do{v=x*v+a[n-k];k=k+1;}while(k<=n);printf("v=%f",v);} 运行结果: 2、二分法.下载可编辑.....P11.1用二分法求方程法x*x*x-x-1=0在[1,2]内的近似根,要求误差不超过#include#includefloatfun(float);voidmain(){floata,b,c,x,y,y1;scanf("%f%f%f",&a,&b,&c);y1=fun(a);do{x=(a+b)/2;y=fun(x);{if(y*y1>0)a=x;elseb=x;}}while((b
3、-a)>=c);printf("%f,%f",x,y);}floatfun(floatm){floatn;n=m*m*m-m-1;return(n);} 运行结果: .下载可编辑.....3、拉格朗日插值程序:#includemain(){floata,b,t,x[100],y[100];intn,i,j,k;scanf("%f%d",&a,&n);for(i=0;i<=n;i++)scanf("%f%f",&x[i],&y[i]);k=0;b=0;for(k=0;k<=n;k++){t=1;for(j=0;j<=n;j++){if(j!=k)t=t*(a-x[j]
4、)/(x[k]-x[j]);}b=b+t*y[k];}printf("%f",b);} 4、埃特金算法程序:#include#includemain().下载可编辑.....{floata,b,c,x[100],y[100];inti,j,n,k;scanf("%d%f",&n,&a);for(i=0;i<=n;i++)scanf("%f%f",&x[i],&y[i]);for(k=1;k<=n;k++){for(i=k;i<=n;i++)y[i]=y[k-1]+(y[i]-y[k-1])*(a-x[k-1])/(x[i]-x[k-1]);}prin
5、tf("%f",y[n]);}5、复化梯形法P95.9设,用复化梯形法求积分的近似值程序:#include#includedoublefun(double);voidmain(){doublea,b,h,s,x,y;intn,k;scanf("%lf%lf%d",&a,&b,&n);h=(b-a)/n;s=0;x=a;y=fun(x);for(k=1;k<=n;k++){s=s+fun(x);.下载可编辑.....x=x+h;s=s+fun(x);}s=(h/2)*s;printf("s=%lf",s);}doublefun(doublem){do
6、ublen;n=exp(-m)*sin(4*m)+1;return(n);}运行结果: 6、复化辛甫生算法P95.9设,用复化辛甫生法求积分的近似值程序:#include#includedoublefun(double);voidmain(){doublea,b,h,s,x,y;intn,k;scanf("%lf%lf%d",&a,&b,&n);h=(b-a)/n;s=0;.下载可编辑.....x=a;y=fun(x);for(k=1;k<=n;k++){s=s+fun(x);x=x+h/2;s=s+4*fun(x);x=x+h/2;s=s+fun(x)
7、;}s=(h/6)*s;printf("s=%lf",s);}doublefun(doublem){doublen;n=exp(-m)*sin(4*m)+1;return(n);}运行结果: 7、二阶龙格库塔方法求解初值问题: 取h=0.2程序:#include#include.下载可编辑.....floatfun(float,float);voidmain(){floath,x