Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

lab5 / main

.cpp
Скачиваний:
2
Добавлен:
22.12.2018
Размер:
3.66 Кб
Скачать
яю#include "pch.h"

#include <iostream>

#include <stdio.h>

#include <math.h>

#include <stdlib.h>

#include "METHODS.H"



double delta, c, d;



double Round(double X, double Delta){

	if (delta <= 1E-9) { puts("No okruglenue--\n"); exit(1); }

	if (X > 0.0) return (delta*(long((X / delta) + 0.5)));

	else    return (delta*(long((X / delta) - 0.5)));

}



double F(double x) { // f(x ) = (1+cos(x))/(3 - sin(x)) - x

	double s;

	long int S;

	s = (1 + cos(x)) / (3 - sin(x)) - x;



	if (s / delta < 0)

		S = s / delta - 0.5;

	else

		S = s / delta + 0.5;

	s = S * delta;



	s = Round(s, delta);

	return s;

}





double F1(double x) {

	double s;

	long int S;

	s = (cos(x)*cos(x) + cos(x) + 3 * sin(x) - 9) / (3 - sin(x)) / (3 - sin(x));



	if (s / delta < 0)

		S = s / delta - 0.5;

	else

		S = s / delta + 0.5;

	s = S * delta;



	s = Round(s, delta);

	return s;

}



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);

}





int main() {

	int k;

	long int s;

	double a, b, eps, x;

	double F(double);



	a = -1.0;

	b = 20.0;



	printf("delta:");

	std::cin >> delta;



	eps = 0.1;

	x = NEWTON(b, eps, k);

	printf("x=%lf k=%d\n", x, k);



	eps = 0.01;

	x = NEWTON(b, eps, k);

	printf("x=%lf k=%d\n", x, k);



	eps = 0.001;

	x = NEWTON(b, eps, k);

	printf("x=%lf k=%d\n", x, k);



	eps = 0.0001;

	x = NEWTON(b, eps, k);

	printf("x=%lf k=%d\n", x, k);



	eps = 0.00001;

	x = NEWTON(b, eps, k);

	printf("x=%lf k=%d\n", x, k);



	eps = 0.000001;

	x = NEWTON(b, eps, k);

	printf("x=%lf k=%d\n", x, k);



	return 0;

}
Соседние файлы в папке lab5
  • #
    22.12.2018137.73 Кб4lab5.xls
  • #
    22.12.20183.66 Кб2main.cpp
  • #
    22.12.20183.16 Кб2METHODS.H
  • #
    22.12.2018161.35 Кб6report_lab5.docx