Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ПРАКТИКУМ_4.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.68 Mб
Скачать

3. Практическая часть

Предлагается использовать функциональный тип данных для задач:

1. Приближенного решения алгебраических и трансцендентных уравнений.

2. Приближенного интегрирования функций.

3.1. Приближенное решение алгебраических и трансцендентных уравнений

Приближенное нахождение изолированных действительных корней уравнения f(x) = 0 обычно складывается из 2-х этапов:

1. Отделение корней, т. е. установление промежутков [a, b], в которых содержится один и только один корень уравнения f(x) = 0.

2. Уточнение приближенных значений корней, т. е. доведение их до заданной степени точности (последовательное приближение к истинному значению корня).

Независимо от метода точность приближенного корня можно оценить двумя способами:

1. Пусть известны два последовательных приближения (два значения корня)

x n-1 и x n .

Как только будет выполняться следующее выражение

| x n - x n-1 | < eps,

где eps – малая наперёд заданная величина (абсолютная погрешность).

Это условия означает, что итерационное приближение (уточнение) к истинному значению корня следует завершить.

2. Уточнение значений корня уравнения f(x) = 0 следует завершить, как только будет получено такое приближение xn , для которого | f(xn ) | < eps.

Способ половинного деления

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

[a1 , b1 ] снова делим пополам и проводим то же рассмотрение и т. д.

Способ пропорциональных частей (метод хорд)

Способ пропорциональных частей заключается в следующем. Если функция f(x) непрерывна на [a, b] и f(a)*f(b) < 0, то для нахождения корня уравнения делим этот отрезок в отношении - f(a)/f(b). Это дает нам приближенное значение корня

x1 = a + h1 , где

h1 = -f(a)*(b-a)/[-f(a)+f(b)] =-f(a)*(b-a)/[f(b)-f(a)].

Далее, применяя этот прием к тому из отрезков [a, x1 ] или [x1 , b],на концах которого функция f(x) имеет противоположные знаки, получим второе приближе-ние корня x2 и т. д.

Способ Ньютона (метод касательных)

Способ Ньютона заключается в следующем. Если f'(x) и f''(x) непрерывны и сохраняют определенные знаки при a <= x <= b, то многократно повторяя формулу

x n+1 = xn - f(xn )/f'(xn ),

получаем быстро сходящиеся к корню последовательные приближения xn (n=1, 2, ...). За первое приближение этого корня можно принять значение

x1 = a - f(a)/f'(a).

Способ итераций

Способ итераций заключается в следующем. Уравнение f(x) переписывается в виде x = g(x). После этого выбирают начальное приближение x1, подставляют его в правую часть уравнения и полученное значение x2 = g(x1 ) принимают за второе приближение для корня. Вообще, если найдено приближение xn, то следующее при-ближение xn+1 определяется по формуле

xn+1 = g(xn ).

Если с заданной степенью точности выполняется равенство x n+1 = xn , то x n и принимают за искомое значение корня.