Скачиваний:
21
Добавлен:
01.05.2014
Размер:
1.5 Кб
Скачать
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#include <iostream.h>

extern double F(double);

double Round (double X,double Delta)
{
 if (Delta<=1E-9) {puts("ЌҐўҐа­®Ґ § ¤ ­ЁҐ в®з­®бвЁ ®ЄагЈ«Ґ­Ёп\n");exit(1);}
 if (X>0.0) return (Delta*(long((X/Delta)+0.5)));
    else    return (Delta*(long((X/Delta)-0.5)));
}


//#ifdef __NEWTON
double NEWTON (double X,double Eps,int &N)
{
  extern double F1 (double);

  double Y,Y1,DX;
  N=0;
  do
  {
    Y  = F(X);
    if (Y==0.0) return (X);

    Y1 = F1(X);
    if (Y1==0.0) {puts("Џа®Ё§ў®¤­ п ®Ўа вЁ« бм ў ­®«м\n");exit(1);}

    DX=Y/Y1; X=X-DX; N++;
  }
  while (fabs(DX)>Eps);
  return (X);
}
//#endif


//-------------------------------------------------------------------------
//-------------------------- End of module --------------------------------

double delta;

double F (double x)
{
      double tmp;
      tmp=tan(x);
      double y;
      y=tmp-(1/x);
      y=Round(y, delta);
      return y;
}

double F1(double x)
{
	double y;
	y=1/(cos(x)*cos(x))+1/(x*x);
	y=Round(y, delta);
	return y;
}

void main()
{
	double X0, eps;
	cout<<"\n‚ўҐ¤ЁвҐ ­ з «м­®Ґ ЇаЁЎ«Ё¦Ґ­ЁҐ: ";
	cin>>X0;
	cout<<"\n‚ўҐ¤ЁвҐ Є®нддЁжЁҐ­­в в®з­®бвЁ ўлзЁб«Ґ­Ё©: ";
	cin>>eps;
	cout<<"\n‚ўҐ¤ЁвҐ Є®нддЁжЁҐ­в в®з­®бвЁ ®ЄагЈ«Ґ­Ёп: ";
	cin>>delta;
	double x;
	int k;
	x=NEWTON(X0,eps,k);
        x=Round(x, delta);
	cout<<"\nx="<<x;
	cout<<"\nЉ®«ЁзҐбвў® и Ј®ў ЇаЁ ўлзЁб«Ґ­ЁЁ: "<<k;

}
Соседние файлы в папке Лабораторные работы №3_4_5_6