
Добавил:
Studfiles2
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Лабораторные работы №3_4_5_6 / LAB5
.CPP#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;
}