まず、方程式の両辺に同時に x を加えます。 このとき、両辺を同時に 1+x で割ると、 、 の変形を取得します。 ( 変性された 反復は一意ではありません。ここで 1 つ選択してください)
x が正確な値である場合、両辺は等しいはずですが、x が近似値であり、x の誤差が非常に小さい場合、x は許容可能な近似解であると考えることができます。
したがって、 は反復を構築できます。
上記の反復に従って、x 値のシーケンスを取得できます。、このシーケンス内の各値は、前の値よりも x の正確な値にほぼ近くなるはずです。固定小数点反復法とは何かをここで簡単に紹介します。
詳細については、第 4 章: 方程式の根を求める反復法 - Jianshu (jianshu.com)4.2 (<) を参照してください。 /span> a>
#include<stdio.h>
#include<math.h>
#define PRECISION 0.000001
int main()
{
//用迭代法计算方程x^2=a的解,即计算根号a的值(不用库函数)
float a,x=1.0,temp;
int count=0;
printf("请输入一个非负数初始迭代值a:");
scanf("%f",&a);
do
{
temp=x;
x=1+(a-1)/(x+1);
count++;
}while(fabs(x-temp)>=PRECISION);
printf("\t方程的近似解为:%f,迭代次数为%d\n",x,count);
return 0;
}