先生王Xiaohuaからのコンテンツ
これは、ハードコアの一種だった、理解することが最初の操作を行い、問題を解決するために、メインの反復手順を使用する方法を学びます
数値解析の分野では、一般に反復法、近似法と約複雑な問題を解決するため、図のように近似解を求めるために、問題で構成漸化式またはループ配列を使用してアルゴリズムのクラスであり、反復法を行うための方法に使用されますこの方法は、数学の問題の反復解法のこの方法は、直接アルゴリズムに反映され、反復法は、設計分野において考慮することができます。
代数的方法を解く低次非線形方程式
モナド非線形方程式の方法が存在する代数的ソリューション多くの方法が一般的にオープン法、分配法、因子分解法、方程式法を使用している、マッピング方法近似解の方法がありますそして、様々な反復法の
高精度と精度が、コンピュータプログラムの作成に資するものではないが、数値解析の分野で非常に方程式を解くための代数的方法は、一般的に使用される反復法の様々な非線形方程式を解きます。接近2点ニュートン反復法を有していると非線形方程式のシステムを解くための一般的方法、
ハーフ近似
ニュートン反復方法
もニュートンとして知られているニュートン反復法、 -ラフソン法(ニュートン・ラプソン法)、それは複雑な分野における方法と実数フィールド近似方程式解法です。それは反復法であるので、アルゴリズムニュートン反復法は反復法モードの実現のために確かに適しています。
ソリューションとガイド機能の近似式
ニュートン反復法アルゴリズム
ニュートン反復法の反復式の関係によれば、可変反復ニュートン反復方法は、所望の結果XXであり、反復の初期値が単調間隔の近似解に近い値を選択することができる、この値があってもよいです漸化式反復繰り返しの任意の値、あるいは区間境界値は、反復終了条件所与の数学的原理の上部近似解の要件を満たす精度を見つけることです。反復変数精度が整合ソリューションであるかどうかを決定する方法は、差分精度を必要な反復の間の差よりも小さいかどうかを確認するために、両者の最新の反復値を計算することです。最も簡単なを達成するために、再帰的なループの反復と反復漸化式、によります。アルゴリズムを設計するとき、無限ループの反復を防止するために、一般的な増加の結果として、収束せず、また反復の制限回数を設定し、反復の終了条件とすることができます。
double NewtonRaphson(FunctionPtr f, double x0) { double x = INVALID_VALUE; int count = 0; do { double x1 = x0 - f(x0) / CalcDerivative(f, x0); //应用迭代递推关系 if (fabs(x1 - x0) < PRECISION) { x = x1; break; } x0 = x1; //更新迭代变量 count++; } while (count < MAX_RUN_LOOP); return x; }
参数 x0 是迭代初始值。选择与上面相同的例子函数,并将迭代初始值设置为区间最大值 8.0,使用牛顿迭代法也只需要 7 次迭代,就可以得到和二分逼近法精度一样的近似解。选择初始值 -8.0 从另一个方向计算,还可以得到另一个解 x= -2.040967365,计算这个解也只需要 6 次迭代,可见牛顿迭代法的收敛速度是超线性的。
总结
使用迭代法,需要首先确定问题是否存在迭代关系,如果存在迭代关系,就尝试确定迭代算法需要的三个关键要素
它们分别是迭代变量、迭代递推关系公式和迭代终止条件。首先确定迭代变量,迭代变量是由迭代关系式确定的,一般情况下,迭代变量就是计算结果,接下来是确定迭代递推关系,最后是迭代退出条件