Вычислительная математика. Ч. 1. Асламова В.С - 8 стр.

UptoLike

15
Начало
ввод
a, b,
ε
n: = 0
c
: = (a + b)/2
n: = n + 1
f(a)*f(c)<0
a: = c b: = c
нет да
b – a
ε
вывод n,
c, f(c)
да
нет
Конец
f(a)*f(b)<0
да
нет
выбор отрезка,
содержащего корень
Рис.3. Блок-схема метода половинного деления
На концах отрезка
функция
имеет разные
знаки?
проверка условия
выхода из цикла
16
2.3. Метод простой итерации
2.3.1. Решение нелинейных уравнений
Для использования этого метода исходное нелинейное уравнение f(x)=0
преобразуется к виду:
x=
ϕ
(x). (2.3)
Пусть известно начальное приближение корня
x
0
. Подставляя это значение в
правую часть уравнения (2.3) получаем новое приближение:
х
1
=
ϕ
(х
0
). Далее,
подставляя каждый раз новое значение корня, получаем последовательность
х
n+1
=
ϕ
(х
n
), n = 1, 2, ....
Итерационный процесс прекращается, если результаты двух
последовательных итераций близки:
х
n+1
х
n
ε. (2.4)
Достаточным условием сходимости метода простой итерации является
выполнение условия
1
)(
<
dx
xd
ϕ
(2.5)
для любого
х, принадлежащего отрезку [a, b], который содержит корень.
На рис.6 представлена геометрическая интерпретация метода итераций. При
начальном приближении
х
0
последовательность приближений х
n
сходится к
корню
х
*
. В случае выполнения условия (2.5) в качестве начального
приближения можно выбрать любую точку интервала [
a, b].
Если мы попытаемся уточнить корень
х
*
и выберем в качестве начального
приближения
х
0
, то, как видно из рис.6, последовательность приближений х
n
(n =
0,1,…) будет расходящейся; расстояние между двумя последовательными
приближениями будет возрастать с увеличением числа итераций
n.
Если же процесс расходится, т.е. не выполняется условие (2.5), то уравнение
f(x)=0 умножаем на константу l и к левой и правой части уравнения прибавляем
x, получаем x = x + lf(x). Новая
ϕ
(x) = x + lf(x). Выберем константу l таким
образом, чтобы обеспечить выполнение условия (2.5
). Положим
ϕ
'(x)=0.5.
ϕ
'(x) = 1 + lf'(x) = 0.5,
отсюда
u
l
5.0
=
,
где
u соответствует max {f '(a),f '(b)}, т.е. если f '(a)> f '(b) то u = f'(a),
иначе
u=f '(b) (блок-схема на рис. 4).
Стоит отметить, что приведенный способ преобразования уравнения
справедлив, в основном, для монотонных функций.
В блок-схемах:
с - начальное приближение корня, а в дальнейшем - результат
предыдущей итерации,
х - значение корня после каждой итерации.
                                                                                                     2.3. Метод простой итерации
                               Начало                                                                2.3.1. Решение нелинейных уравнений
                                                                                Для использования этого метода исходное нелинейное уравнение f(x)=0
                                 ввод                                        преобразуется к виду:
                                a, b, ε                                                                            x=ϕ(x).                          (2.3)
      На концах отрезка                                                         Пусть известно начальное приближение корня x0. Подставляя это значение в
      функция имеет разные
      знаки?
                                                                             правую часть уравнения (2.3) получаем новое приближение: х1=ϕ(х0). Далее,
                                                нет                          подставляя каждый раз новое значение корня, получаем последовательность хn+1
                             f(a)*f(b)<0
                                                                             = ϕ (хn), n = 1, 2, ....
                                      да                                        Итерационный           процесс    прекращается,   если   результаты двух
                                                                             последовательных итераций близки:
                                 n: = 0                                                                            ⏐хn+1−хn⏐ ≤ ε.                   (2.4)
                                                                                Достаточным условием сходимости метода простой итерации является
                                                                             выполнение условия
                              c : = (a + b)/2
                                                                                                                    dϕ ( x)                         (2.5)
                                n: = n + 1                                                                                  <1
                                                                                                                     dx
                                                          выбор отрезка,
                                                        содержащего корень   для любого х, принадлежащего отрезку [a, b], который содержит корень.
                    нет                          да                              На рис.6 представлена геометрическая интерпретация метода итераций. При
                              f(a)*f(c)<0                                    начальном приближении х0 последовательность приближений хn сходится к
                                                                             корню х*. В случае выполнения условия (2.5) в качестве начального
         a: = c                                       b: = c                 приближения можно выбрать любую точку интервала [a, b].
                                                                                 Если мы попытаемся уточнить корень х* и выберем в качестве начального
                                                          проверка условия
                                                                             приближения х0, то, как видно из рис.6, последовательность приближений хn (n =
                                                          выхода из цикла    0,1, ) будет расходящейся; расстояние между двумя последовательными
                       нет                                                   приближениями будет возрастать с увеличением числа итераций n.
                              ⎟b – a⎟ ≤ ε                                        Если же процесс расходится, т.е. не выполняется условие (2.5), то уравнение
                                      да                                     f(x)=0 умножаем на константу l и к левой и правой части уравнения прибавляем
                                                                             x, получаем x = x + lf(x). Новая ϕ(x) = x + lf(x). Выберем константу l таким
                               вывод n,                                      образом, чтобы обеспечить выполнение условия (2.5). Положим ϕ '(x)=0.5.
                                c, f(c)                                                                       ϕ '(x) = 1 + lf'(x) = 0.5,
                                                                             отсюда l = − 0 . 5 ,
                                                                                               u
                                Конец                                        где u соответствует max {⏐f '(a)⏐,⏐f '(b)⏐}, т.е. если ⏐f '(a)⏐> ⏐f '(b)⏐ то u = f'(a),
                                                                             иначе u=f '(b) (блок-схема на рис. 4).
Рис.3. Блок-схема метода половинного деления                                     Стоит отметить, что приведенный способ преобразования уравнения
                                                                             справедлив, в основном, для монотонных функций.
                                                                                В блок-схемах: с - начальное приближение корня, а в дальнейшем - результат
                                                                             предыдущей итерации, х - значение корня после каждой итерации.




                                 15                                                                                    16