aitken迭代方法求方程根


对于收敛的迭代过程,只要迭代足够多次,就可以达到任意的精度,但有时候迭代过程收敛过程缓慢,从而增大了计算量。而aitken迭代法具有加速收敛效果。
#include <stdio.h>
#include <math.h>
#define MaxDepth 100 /*最大迭代深度*/
#define epsilion 1e-5
typedef double (*calfun) (double);
double f1(double x)
{
return x*x*x-1;
}
int aitken(calfun fun,double x0,double *ans)
{
/*
x0初始值
x1,x2存放迭代的中间结果
*/
int i;
double x1,x2,y,z;
x1=x0;
for(i=0;i<MaxDepth;i++)
{
y=fun(x1);
z=fun(y);
x2=z-((z-y)*(z-y)/(z-2*y+x1));
if(fabs(x2-x1)<1e-5)
{
*ans=x2;
return 1;
}
x1=x2;
}
printf("After %d repeate,no solved.\n",MaxDepth);
return 0;
}
int main()
{
double ans;
if(aitken(f1,1.5,&ans))
{
printf("%lf\n",ans);
}
getche();
return 0;
}
本文来源于网络小筑 http://www.iwebtrados.com.cn/ , 原文地址:http://www.iwebtrados.com.cn/post/293.html

优质内容筛选与推荐>>
1、Vue 路由的编程式导航与history模式
2、Exp9 Web安全基础
3、springboot笔记05——profile多环境配置切换
4、15.django跨域问题
5、wget


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号