数值计算c语言常用,数值计算C语言常用小程序.pdf

1、 秦九韶算法 2 、二分法 3 、拉格朗日插值 4 、埃特金算法 5 、复化梯形法

6、复化辛甫生算法 7 、二阶龙格库塔方法 8 、四阶龙格库塔方法 9、改进的

欧拉方法 10、迭代法 11、埃特金加速方法: 12、牛顿迭代法 13、追赶法

14、雅克比迭代 15、蛋白质设计: 17 高斯消去法 :

1、 秦九韶算法

P11.3 利用秦九韶算法求多项式 ,在 x=3 时的值。

程序:

#include

#include

void main()

{float a[100],v,x;

int n,i,k;

scanf("%d%f",&n,&x);

for(i=0;i<=n;i++)

scanf("%f",&a[i]);

v=a[n];

k=1;

do

{v=x*v+a[n-k];

k=k+1;

}

while(k<=n);

printf("v=%f",v);}

运行结果:

2、二分法

1

P11.1 用二分法求方程法 x*x*x-x-1=0 在 [1,2] 内的近似根,要求误差不超过

#include

#include

float fun(float);

void main()

{float a,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;

else

b=x;}}

while((b-a)>=c);

printf("%f,%f\n",x,y);

}

float fun(float m)

{float n;

n=m*m*m-m-1;

return(n);

}

运行结果:

2

3、拉格朗日插值

程序:

#include

main()

{float a,b,t,x[100],y[100];

int n,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])/(x[k]-x[j]);}

b=b+t*y[k];

}

printf("%f\n",b);

}

4 、埃特金算法

程序:

#include

#include

main()

3

{float a,b,c,x[100],y[100];

int i,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]);}

printf("%f\n",y[n]);

}

5、复化梯形法

P95.9 设 , 用复化梯形法求积分 的近似值

程序:

#include

#include

double fun(double);

void main()

{

double a,b,h,s,x,y;

int n,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);

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值