Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <stdio.h>
- #include <iostream>
- #include <math.h>
- int main() {
- setlocale(0, "Russian");
- short n = 1;
- float leftLimit = 2, rightLimit = 3, eps = pow(10, -5), x, yLeft, yRight, y;
- puts("Изначальное положение.");
- printf("Левая граница: %f\n", leftLimit);
- printf("Правая граница: %f\n", rightLimit);
- puts("########################################");
- x = (leftLimit + rightLimit) / 2;
- yLeft = 3 * sin(sqrt(leftLimit)) + 0.35*leftLimit - 3.8;
- yRight = 3 * sin(sqrt(rightLimit)) + 0.35*rightLimit - 3.8;
- y = 3 * sin(sqrt(x)) + 0.35*x - 3.8;
- while ( fabs(yLeft - yRight) > eps ) {
- if ( y*yRight < 0 )
- leftLimit = x;
- else
- rightLimit = x;
- printf("Итерация номер %d\n", n);
- printf("Левая граница: %f\n", leftLimit);
- printf("Правая граница: %f\n", rightLimit);
- puts("########################################");
- x = (leftLimit + rightLimit) / 2;
- y = 3 * sin(sqrt(x)) + 0.35*x - 3.8;
- yLeft = 3 * sin(sqrt(leftLimit)) + 0.35*leftLimit - 3.8;
- yRight = 3 * sin(sqrt(rightLimit)) + 0.35*rightLimit - 3.8;
- n++;
- }
- puts("");
- y = 3 * sin(sqrt(x)) + 0.35*x - 3.8;
- if (fabs(y) > eps)
- printf("Корень найден неверно\n");
- else
- printf("Корень = %f\nНайден после %d итераций\n", x, n-1);
- printf("y(%2.2f) = %f\n", x, y);
- puts("");
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement