Witam, posiadam pewien problem, zamiast liczb, podczas kompilowania zostaje wypisane -1.#IND. Znalazłem coś takiego : If you get 1.#IND ornan, look for illegal operations.
Poniżej wkleje swój program. Dodam ze to #IND pojawia się gdy wartość i w funkcji szereg w forze zwiększam do >208. Potrzebuje podac wartość i<1000, lecz wtedy prawie wszystkie wyniki wskazują #IND. Ktoś wie jakie może być rozwiązanie tego problemu? :)
double szereg(int x)
{
double y = 1.0;
double n = 1.0, m = 1.0;
for (double i = 1.0; i <= 225.0; i+=1)
{
m *= i;
y += (pow((double)x, (double)i)) / (double)m;
}
return y;
}
int _tmain(int argc, _TCHAR* argv[])
{
cout << "x\t\texp(x)\t\tszereg Taylora\n" << endl;
double o, blad_wzgledny,blad_bezwzgledny;
int n = 1, m = 1;
for (double i = -30.0; i <= 30.0; i+=1)
{
double z = exp(i);
o = szereg(i);
blad_wzgledny = (o - z) / z;
blad_bezwzgledny = o - z;
double wart_konc = o +blad_bezwzgledny;
cout << i << "\t\t" <<z <<"\t\t"<<wart_konc << endl;
}
system("PAUSE");
return 0;
}