я попытался получить эту работу, используя метод Ньютона, как описано здесь: вики, используя следующий код, но проблема в том, что он дает точный результат только до 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;
}
double
? Прочитайте это: cplusplus.com/doc/tutorial/variables - person ypercubeᵀᴹ   schedule 14.12.2011double
вы не сможете получить такую высокую точность. Вам понадобится больший тип с плавающей запятой. - person Fred Foo   schedule 14.12.2011