#include<stdio.h>
double f(double);
double fd(double);
main()
{double x,y;
int imax=5,i;
scanf("%lf",&x);
for(i=1;i<=imax;i++)
{
y=x-f(x)/fd(x);
printf("%lf %lf\n",x,y);
}
}
double f(double x)
{
return (x-5)*(x-3)*(x-1)
}
double fd(double x)
{
return (x-5)*(x-3)+(x-3)*(x-1)+(x-5)*(x-1)
}
ニュートン法で方程式の解の近似値を求めたいのですが、実行して6を入れたりすると、
6.0000 5.7432
6.0000 5.7432
6.0000 5.7432
6.0000 5.7432
6.0000 5.7432
という感じで出力されてしまうのですが、どこがおかしいのでしょうか?
できたら教えていただきたいのですが。