Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


методом деления отрезка пополам




Метод деления отрезка пополам заключается в следующем. Проверяется наличие корня на отрезке [a, b] (рис.4.4).

Рис.4.4. Метод деления отрезка пополам.

Для этого вычисляются значения функций f(a) и f(b). Если f(a)*f(b)>0, то уравнение не имеет корней на заданном отрезке. Если f(a)*f(b)<0, т.е. на концах отрезка [a, b] функция f(x) имеет противоположные знаки, то искомый корень лежит на этом отрезке. Поиск корня происходит следующим образом. Находим в точке a значение функции y1 = f(a). Затем определяем значение x как среднюю точку между а и b, вычисляем значения y2 = f(x). Теперь, если f(a)*f(x)>0, то корень находится на отрезке [x, b], иначе – на отрезке [a, x]. В соответствии с этим, перемещаем точку а вправо или точку в влево, выполняя, соответственно присваивание а = х или b = x. Таким образом, получаем второй отрезок [a, b], но вдвое меньший предыдущего. Процесс деления отрезка пополам продолжаем до тех пор, пока отрезок [a, b] не станет меньше заданной точности. После этого вычисляем значение x = (a+b)/2.

 

Пример 4.4. Решение уравнения с заданной точностью e = 0.01 методом деления отрезка пополам, если корень находится на отрезке [1,3].

#include <iostream>

#include <conio.h>

#include <math.h>

#include <stdlib.h>

using namespace std;

 

int main()

{ int n = 0;

float x, a = 1, b = 3, y1, y2, eps = 0.001, e, r, l;

l = a; r = b;

y1 = a*a*a – 2*a*a – 3;

y2 = b*b*b – 2*b*b – 3;

if (y1*y2>0) { cout << "Корней нет" <<endl;

getch();

exit(1);

}

do { ++n;

x = (a+b)/2;

y1 = a*a*a – 2*a*a – 3;

y2 = x*x*x – 2*x*x – 3;

if (y1*y2>0) a = x;

else b = x;

} while ((b – a)>eps);

x = (a + b)/2;

cout << "Корень уравнения на отрезке "<< l << ", " << r << "равен " << x << " и получен за " << n <<"шагов";

cout << endl;

return 0; }

Контрольные вопросы

Варианты заданий

Задание 1

Ввести с клавиатуры х и точность вычисления Eps. Вычислить с заданной точностью сумму

Номер варианта Задание
1, 16
2, 17
3, 18
4, 19
5, 20
6, 21
7, 22
8, 23
9, 24
10, 25
11, 26
12, 27
13, 28
14, 29
15, 30

 

 

Задание 2

Номер варианта Задание
1, 16 Методом деления отрезка пополам и методом итераций найти приближенное значение корня уравнения x + ln(x + 0.5) – 0.5 = 0 на интервале [0, 2]. Абсолютная погрешность не превышает . Сравнить методы вычисления.
2, 17 Методом деления отрезка пополам и методом итераций найти приближенное значение корня уравнения 2x3 + 4x – 1 = 0 на интервале [0, 0.5]. Абсолютная погрешность не превышает . Сравнить методы вычисления.
3, 18 Методом деления отрезка пополам и методом итераций найти приближенное значение корня уравнения 1/x = sin x на интервале [0.1, 2]. Абсолютная погрешность не превышает . Сравнить методы вычисления.
4, 19 По формуле Симпсона и методом прямоугольников вычислить приближенное значение интеграла . Точность не превышает 0.001. Сравнить методы вычисления.
5, 20 Методом деления отрезка пополам и методом итераций найти приближенное значение корня уравнения x4 + 2x3 – x – 1 = 0 на интервале [0, 1]. Абсолютная погрешность не превышает 0.00015. Сравнить методы вычисления.
6, 21 Методом деления отрезка пополам и методом итераций найти приближенное значение корня уравнения x3 + 12x – 2 = 0 на интервале [0.1, 1]. Абсолютная погрешность не превышает 0.00015. Сравнить методы вычисления.
7, 22 По формуле Симпсона и методом прямоугольников вычислить приближенное значение интеграла . Точность не превышает 0.001. Сравнить методы вычисления.
8, 23 Методом деления отрезка пополам и методом итераций найти приближенное значение корня уравнения x5 – x – 0.2 = 0 на интервале [0.9,1.1]. Абсолютная погрешность не превышает 0.0001. Сравнить методы вычисления.
9, 24 Методом деления отрезка пополам и методом итераций найти приближенное значение корня уравнения 5x + 8lnx – 1 = 0 на интервале [0.5, 1]. Абсолютная погрешность не превышает 0.0015. Сравнить методы вычисления.
Номер варианта Задание
10, 25 По формуле Симпсона и методом прямоугольников вычислить приближенное значение интеграла Точность не превышает 0.001. Сравнить методы вычисления.
11, 26 Методом деления отрезка пополам и методом итераций найти приближенное значение корня уравненияx3 – 2x2 + x – 3 = 0на интервале [2.1, 2.2]. Абсолютная погрешность не превышает 0.001. Сравнить методы вычисления.
12, 27 Методом деления отрезка пополам и методом итераций найти приближенное значение корня уравнения x3 + x2 – 3 = 0 на интервале [0.5, 3]. Абсолютная погрешность не превышает 0.00001. Сравнить методы вычисления.
13, 28 По формуле Симпсона и методом прямоугольников вычислить приближенное значение интеграла . Точность не превышает 0.001. Сравнить методы вычисления.
14, 29 По формуле Симпсона и методом прямоугольников вычислить приближенное значение интеграла . Точность не превышает 0.001. Сравнить методы вычисления.
15, 30 По формуле Симпсона и методом прямоугольников вычислить приближенное значение интеграла . Точность не превышает 0.001. Сравнить методы вычисления.




Поделиться с друзьями:


Дата добавления: 2016-12-06; Мы поможем в написании ваших работ!; просмотров: 364 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Если вы думаете, что на что-то способны, вы правы; если думаете, что у вас ничего не получится - вы тоже правы. © Генри Форд
==> читать все изречения...

2260 - | 2183 -


© 2015-2024 lektsii.org - Контакты - Последнее добавление

Ген: 0.008 с.