 
        
        
          Добавил:
          
          
        
        
    
            Studfiles2
            
            
            
            
            
            Опубликованный материал нарушает ваши авторские права? Сообщите нам.
          
          Вуз:
          Предмет:
          Файл:Лабораторная работа №12 / LAP11_CE
.CPP#include<stdio.h>
#include<math.h>
//newton
void func(double x, double & fx, double & dfx)
{
	fx = x*x*x-3*x+1;//ўлзЁб«ҐЁҐ § зҐЁп дгЄжЁЁ
	dfx = 3*x*x - 3; //ўлзЁб«ҐЁҐ § зҐЁп Їа®Ё§ў®¤®©
}
void newton(double x) /* newton */
{
	const	double tol   = 1.0E-9;
	int max = 20;
	double fx, dfx, dx, x1;
	int i;
	char error;
  error = 0;
  i = 0;
  do
 {
    i = i + 1;
    x1 = x;
    func(x,fx,dfx);
    if (dfx == 0.0)
      {
	error = 1;
	x = 1.0;
       //	printf("%cERROR: slope zero",7);
      }
    else
      {
	dx = fx/dfx;
	x = x1 - dx;
	//printf("x=%f, fx=%f, dfx=%f\n",x,fx,dfx);
      }
  }while(!(error || (i > max) || (abs(dx) <= abs(tol*x)) ));
  /*if (i > max)
    {
	printf("%cERROR: no convergence in %d loops\n",7,max);
      error = 1;
    }   */
}		/* newton */
void main()
{
  int k;
  k = 0;
  do
  {
   k = k + 1;
   double x = 43.356;
   newton(x);//Ї а ¬Ґва x - ЇаЁ¬Ґал© Є®аҐм
  }
     while (k < 100000);
     }
          Соседние файлы в папке Лабораторная работа №12
          
      
    
    
    
          