Atiken加速一般迭代和牛顿迭代法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第二次上机实验报告实验一:
.用不动点迭代法求
的根
发散的迭代格式:
,其中k=0,1,2……
收敛的迭代格式:
,其中k=0,1,2……
当使用第二种格式迭代,且精度为10^(-12)时,程序如下:#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
#define h 0.000000000001
double f(double x) {
double f1 = pow(x + 1, 1.0 / 3);
return f1;
}
int main() {
double x1, x2;
int n=0;
cout<< "input first data:" <<endl; cin>> x1;
x2 = f(x1);
while (fabs(x2 - x1) > h) {
n++;
x1 = x2;
cout<<setprecision(14) << x2 <<endl; x2 = f(x1);
}
cout<< "result:"
<<endl
<<setprecision(14) << x2
<<endl;
cout<< n
<<endl;
return 0;
}
输入初值为3的时候,结果如下:
对迭代格式使用Aitken加速,观察其收敛散性质变化对迭代格式一使用Aitken加速,收敛
对迭代格式二使用Aitken加速,收敛速度变快
程序如下:
#include<iostream>
#include<iomanip>
#include<math.h>
#defineh 0.000000000001
usingnamespacestd;
double f(doublex) {
double f1 = pow(x,3)-1;
return f1;
}
int main() {
double x0,x1, x2;
int n = 0;
cout<<"please input the first number:"<<endl; cin>> x0;
x1 = f(x0);
while (fabs(x0-f(x0))>h) {
n++;
x2 = f(x1);
x0 = x2 - (x2 - x1)*(x2 - x1) / (x2 - 2 * x1 + x0); x1 = x2;
cout<<setprecision(14) << x0 <<endl;
}
cout<<"result:"
<<endl
<<setprecision(14)
<<x0
<<endl;
cout<< n <<endl;
return 0;
}
对迭代格式二作Aikten加速迭代时,只需将函数f(x)替换为。

初值为3的运行结果如下:
迭代格式一:
迭代次数:34
收敛于1.3247179572448
迭代格式二:
迭代次数:3
收敛于:1.3247179572448
实验二:
.
=0,分析其有根区间;

,取
=3.5,1,-0.5进行计算
对比直接计算与Aitken加速的结果
.设计更多的
,采用更多的初值,重复
的操作。

1. 因为


所以函数
的有根区间为


2.
=3.5,1,-0.5时的一般迭代运行结果分别如下:
三者迭代次数稍有差别,但是最后的收敛结果都收敛于同一个根。

=3.5,1,-0.5时的Aitken加速迭代运行结果分别如下:
显然Aitken加速比一般迭代法收敛更加迅速,且当初值选择恰当时,收敛的值也在初值附近。

3.

=4,3.5,1,0.5,-0.5,-1,-3
对于

=4,3.5,1,0.5,-0.5,-1,-3
一般迭代法:
=4:
=3.5
=1
=0.5
=-0.5
=-1
=-3
Aitken加速法:=4
=3.5
=1
=0.5
=-0.5
=-1
=-3
结论:初值的选择对一般迭代法的最终结果影响较大,较大的初值有可能会导致一般迭代法发散。

对于

一般迭代法:
=4
发散=3.5
=1
=0.5
=-0.5
溢出
=-1
溢出
=-3
溢出
Aitken加速法:=4
=3.5
=1
=0.5
=-0.5
=-1
=-3
结论:同上,Aitken收敛速度更快,一般迭代法对初值敏感。

通过以上两个实验,你对Aitken加速有什么样的认识?
1. Aitken加速收敛速度远高于一般迭代法
2. Aitken加速对初值不敏感
3. Aitken加速可以使部分一般迭代法中发散的变得收敛
继续阅读。

相关文档
最新文档