Решение уравнения методом простых итераций, Floating poin:Squere root of Negative num

Модераторы: Hawk, Romeo, Absurd, DeeJayC, WinMain

Ответить
Dozen
Сообщения: 8
Зарегистрирован: 27 окт 2010, 16:12

надо решить уравнение методом простых итераций

f(x)=arcsin(2x+1)-x^2=0 , ошибок при компиляции нету , но при запуске выдаёт Floating poin:Squere root of Negative number =((

Код: Выделить всё

#include <iostream.h>
#include <math.h>

 
double Phi (double x);
double Oshibka(double x);
 
const double Eps = 0.0001;
 
int main ()
{
        double x=-0.5;
        double y=0.0;
        int i;

        while (Oshibka(y)>Eps)
        {
                y = Phi(x);
		x=y;
        }
 
        cout<<"x = "<<x<<endl;
        return 0;
}
 

double Phi (double x)
{
        double y;
        if(x==0) return 0.0001;
	y = sqrt(asin(2.0*x+1.0));
       
        return y;
}
 

double Oshibka(double x)
{
      double y;
      y = asin(2.0*x+1.0)-x*x;
       if (y<0) 
            return y;
}

компилятор - Borland C++ 3.1
BBB
Сообщения: 1298
Зарегистрирован: 27 дек 2005, 13:37

"Squere root of Negative number" - (перевожу) квадратный корень из отрицательного числа.
И она права, черт побери! :)
Что-то в алгоритме криво.
azrael
Сообщения: 89
Зарегистрирован: 31 май 2009, 15:30
Контактная информация:

double x=-0.5;
...
y = Phi(x);
...
y = sqrt(asin(2.0*x+1.0));

Невооруженным глазом :)
Ответить