Witam, mam obliczyć z podawaną na wejściu dokładnością wyrażenie (1-x)^(1/4), gdzie x, ofc, też podany.
double newton(double n, double k)
{
if(n>1)
return (n-k+1)/n*newton(n, k-1);
else
return n;
}
double rozwiniecie(double x, double eps)
{
double tmp=0.0, sum=0.0;
unsigned int n = 0;
while (true)
{
// http://www.wolframalpha.com/input/?i=maclaurin+sqrt%28sqrt%281-x%29%29+
tmp=(pow(x, n)*pow(-1,n)*newton(0.25, n));
if (fabs(tmp) < eps) return sum;
sum+=tmp;
n++;
}
}
Niestety, wyniki, pomimo różnych zadawanych wartości eps, nigdy nie są nawet zbliżone do wolframowych. Mam pytanie, czy robię jakiś błąd w warunku if(fabs(tmp)<eps) return sum, trochę późno jest i nie mogę zaczaić gdzie.