まちがえているようで答えがおかしくなってしまいます
x^n+x^(n-1)+…x^2+x-(1/2)=0の式で
nを10、xを3、epsを0.0000000001でやったら3ちょっとくらいになるはずなのですがなりません…
どこがおかしいのでしょうか?
#include<stdio.h>
#include<math.h>
double f(double x , int n){
double y=-1/2;
while(n>=1){
y += pow(x,n);
n--;
}
return y;
}
double df(double x , int n){
double y=0;
while(n>=1){
y += n*pow(x,n-1);
n--;
}
return y;
}
int main(void)
{
int i=0,n;
double x,eps;
printf("\n x^n+x^(n-1)+...+x^2+x-(1/2)=0について\n");
printf(" nの値:");
scanf("%d",&n);
printf(" 初期値x:");
scanf("%lf",&x);
printf(" 精度eps:");
scanf("%lf",&eps);
while(fabs(f(x,n))>eps)
{
x = x-f(x,n)/df(x,n);
i++;
printf("\n%3d回目 x=%lf f(x)=%lf\n",i,x,f(x,n));
}
}