1. Метод Ньютона для решения нелинейного уравнения и систем

advertisement
Варианты для задания 1.1
1.
1.1.
Варианты для задания 1.2
Метод Ньютона для решения нелинейного уравнения
и систем
Метод Ньютона (метод касательных)
для решения нелинейного уравнения
Пусть дано уравнение
f (x) = 0
(1)
и начальное приближение x0 к его корню.
Предполагаем, что функция f (x) — вещественная и находим вещественный корень x∗ .
Будем предполагать, что на отрезке [a, b] (x0 ∈ [a, b]) содержится единственный корень
уравнения (1) и существуют непрерывные производные f 0 (x) 6= 0, f 00 (x) 6= 0.
Заменим уравнение в окрестности x0 приближенно уравнением
f (x0 ) + f 0 (x0 )(x − x0 ) = 0,
левая часть которого есть линейная часть разложения функции f (x) в ряд Тейлора в
окрестности точки x0 . Отсюда
x1 = x0 −
f (x0 )
f 0 (x0 ) .
Действуя аналогично, получаем расчетную формулу метода Ньютона
xk = xk−1 −
f (xk−1 )
, k = 1, 2, . . . .
f 0 (xk−1 )
(2)
Метод Ньютона имеет простой геометрический смысл: xk есть абсцисса точки пересечения касательной к графику функции f (x), построенной в точке (xk−1 , f (xk−1 )), с осью
абсцисс.
Теорема 1 (о сходимости). Если
1. f (a)f (b) < 0,
2. f 0 (x), f 00 (x) отличны от нуля (сохраняют определенные знаки при
3. f (x0 )f 00 (x0 ) > 0, x0 ∈ [a, b],
то xk → x∗ , причем скорость сходимости определяется неравенством
M2
|xk − x∗ | ≤
(xk−1 − x∗ )2 .
2m1
Здесь m1 = min |f 0 (x)|, M2 = max |f 00 (x)|.
x∈[a,b]
x ∈ [a, b]),
x∈[a,b]
Если f (x0 ) f 00 (x0 ) < 0, то можно не прийти к x = x∗ , если x0 не очень хорошее.
Заметим, что если f 0 (x∗ ) = 0, то квадратичной сходимости может и не быть.
Например, пусть f (x) = x2 , корень x∗ = 0 — корень второй кратности, расчетная
формула имеет вид: xk+1 = xk /2 и сходимость линейная.
Иногда целесообразно применять модифицированный метод Ньютона с расчетной формулой:
xk = xk−1 −
f (xk−1 )
, k = 1, 2, . . .
f 0 (x0 )
(3)
Скорость сходимости модифицированного метода значительно меньше.
При решении задачи итерационными методами следует обращать внимание на следующие моменты:
1
• расчетная формула;
• условие сходимости;
• скорость сходимости;
• получение решения с заданной точностью ε. В методе Ньютона можно пользоваться
следующим критерием: если |xk+1 − xk | < ε, то |xk − x∗ | < ε.
Задание 1.1
Дано уравнение f (x) = 0.
Требуется найти все решения уравнения или решения на заданном промежутке с заданной точностью ε = 0.00001.
Программа должна содержать подпрограмму для уточнения решения методом Ньютона с параметрами:
• x0 — нулевое приближение к корню;
• ε — заданная точность;
• kmax — максимальное количество итераций (для исключения зацикливания).
Подпрограмма должна возвращать либо xk , такое что |xk − xk−1 | < ε, либо xk max .
Отчет по выполнению задания должен содержать:
• график функции f (x) для нахождения начального приближения;
• уточнение начального приближения до тех пор, пока |xk − xk−1 | < ε, методом Ньютона по формуле (2).
• уточнение начального приближения до тех пор, пока |xk − xk−1 | < ε, модифицированным методом Ньютона по формуле (3).
Сравнить результаты, количество итераций.
Возможно, начальное приближение придется уточнить прежде методом половинного
деления.
Результаты оформить в виде таблицы 1.
k
0
1
...
1.2.
Таблица 1
xk -xk−1 f(xk )
—
xk
...
...
...
Метод Ньютона для решения системы 2-х уравнений
Дана система:
(
f (x, y) = 0,
(4)
g(x, y) = 0.
где f (x, y), g(x, y) достаточно гладкие функции.
В результате действий, аналогичных случаю одного уравнения, т.е. приближенно заменяя систему (4) линейной системой, получаем следующие расчетные формулы:
(k)
xk+1 = xk −
(k)
dx
dy
d
d(k)
, yk+1 = yk −
(k)
где
2
,
(k)
d
f (x , y )
(k)
dx = g (x k, y k)
k k
f 0 (x , y )
f 0 y (xk , yk ) k k
x
,
= 0
g x (xk , yk )
g 0 y (xk , yk ) f 0 y (xk , yk ) (k) f 0 x (xk , yk )
,
d
=
y
0
g 0 x (xk , yk )
g y (xk , yk ) f (xk , yk ) g (xk , yk ) .
Задание 1.2
Требуется найти все решения системы уравнений или решения в заданной области с заданной точностью ε=0.00001.
Программа должна содержать подпрограмму для уточнения решения методом Ньютона с параметрами:
x0 , y0 — нулевое приближение к корню;
ε — заданная точность;
kmax — максимальное количество итераций (для исключения зацикливания).
Подпрограмма должна возвращать либо решение (xk , yk ), такое что
||(xk − xk−1 , yk − yk−1 )|| < ε, либо (xk max , yk max ).
Здесь норма вектора (xk − xk−1 , yk − yk−1 ) может быть вычислена, например, следующим
образом:
p
||(xk − xk−1 , yk − yk−1 )|| = (xk − xk−1 )2 + (yk − yk−1 )2 .
Отчет должен содержать
Графики функций f (x, y) = 0, g(x, y) = 0 для выбора начального приближения, выполненные в математическом пакете Maple.
Уточнение начального приближения до тех пор, пока ||(xk − xk−1 , yk − yk−1 )|| < ε, методом Ньютона.
Результаты оформить в виде таблицы 2.
k
0
1
...
xk
yk
||((xk − xk−1 ), (yk − yk−1 ))||
—
Варианты для задания 1.1
f (xk , yk )
Таблица 2
g(xk , yk )
Варианты для задания 1.2
3
Download