c语言迭代埃特金加速算法,5-埃特金加速迭代算法

#include "stdio.h"

#include "conio.h"

#include "math.h"

#define MaxK 100 /*最大迭代次数*/

#define EPS 0.5e-3

double g(double x){ return x*x*x-1;} /*迭代函数*/

int aitken(double (*g)(double), double &x, double eps)

{

double yk,zk,xk;

int i=0;

printf("k\t\t   xk\t\t\t   yk\t\t   zk\t\t  xk+1\n");

printf("--------------------------------------------------------------------------------");

printf("%d\t\t%f\t",i,x);

yk=g(x);

zk = g(yk);

xk=x - (  ((yk-x)*(yk-x)) / (zk - 2*yk +x)  );

printf("\t%f\t%f\t%f",yk,zk,xk);

do

{

x=xk;

printf("%d\t\t%f",i+1,x);

yk=g(x);

zk = g(yk);

xk=x - (  ((yk-x)*(yk-x)) / (zk - 2*yk +x)  );

printf("\t\t%f\t%f\t%f",yk,zk,xk);

i++;

}while( fabs(xk-x) > eps );

x = xk;

return i+1 ;

}

void main()

{

double x=0.6;

int k;

k = aitken(g,x,EPS);

if(k == -1) printf("迭代次数越界!\n");

else if(k == -2) printf("除零错误!\n");

else printf("\n\n经k=%d次迭代,所得方程根为:x=%f\n",k,x);

getch();

}

大小: 1.07 KB

版本: V1.0

出品: 本站原创

来源: 本地

语言: 简体中文

授权: 免费

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值