ここで説明されているように、ニュートンの方法を使用してこの作業を取得しようとしました:次のコードを使用したwikiですが、問題は、小数点以下 16 桁までしか正確な結果が得られないことです。繰り返し回数を増やしてみましたが、結果は同じです。私は1の最初の推測から始めました。では、どうすれば回答の精度を向上させることができますか(小数点以下100桁以上)? ありがとう。コード:
double x0,x1;
#define n 2
double f(double x0)
{
return ((x0*x0)-n);
}
double firstDerv(double x0)
{
return 2.0*x0;
}
int main()
{
x0 = n/2.0;
int i;
for(i=0;i<40000;i++)
{
x1=x0-(f(x0)/((firstDerv(x0))));
x0=x1;
}
printf("%.100lf\n",x1);
return 0;
}