
- •Решение алгебраических уравнений и систем уравнений в sMath Studio (ч.2)
- •Введение
- •Решение линейных алгебраических систем уравнений
- •Решение системы уравнений матричным методом
- •Решение системы уравнений методом прогонки
- •Решение системы уравнений методом итерации
- •Решение нелинейных алгебраических систем уравнений
- •Решение систем уравнений с помощью функции roots
- •Программирование численного метода Ньютона
Решение нелинейных алгебраических систем уравнений
Дана система нелинейных уравнений
|
(17) |
или
Необходимо
решить эту систему, т.е. найти вектор
,
удовлетворяющий системе (17) с точностью
ε.
Вектор
определяет
точку в n-мерном
Евклидовом пространстве, т.е.
этому
пространству и удовлетворяет всем
уравнениям системы (17).
В
отличие от систем линейных уравнений
для систем нелинейных уравнений
неизвестны прямые методы решения. При
решении систем нелинейных уравнений
используются итерационные методы.
Эффективность всех итерационных методов
зависит от выбора начального приближения
(начальной точки), т.е. вектора
.
Область,
в которой начальное приближение
сходится
к искомому решению, называется областью
сходимости G.
Если начальное приближение
лежит
за пределами G,
то решение системы получить не удается.
Выбор начальной точки во многом определяется интуицией и опытом специалиста.
Решение систем уравнений с помощью функции roots
Для решения систем нелинейных уравнений в SMath Studio имеется стандартная функция roots (рис. 3). Применение данной функции для решения нелинейных алгебраических уравнений было рассмотрено в лабораторной работе №3.
Рассмотрим особенности применения функции roots для решения систем нелинейных уравнений. Напомним, что в SMath Studio имеются два варианта ее реализации: с заданием начальных значений корней roots(3) и без их задания roots(2). Функция roots определяет только один корень уравнения. Если в уравнении несколько корней, то определяется тот, к которому ближе всего заданное начальное значение переменной.
Варианты решения системы нелинейных уравнений с помощью функции roots(2) показаны на рис. 4.
Рис. 3
Рис. 4
Задание. Выполнить решение примеров данного раздела, а также решить системы уравнений в соответствии с заданным вариантом.
Программирование численного метода Ньютона
Метод Ньютона является наиболее распространенным методом решения систем нелинейных уравнений. Он обеспечивает более быструю сходимость по сравнению с методом простых итераций. В основе метода Ньютона лежит идея линеаризации всех нелинейных уравнений системы (17). Геометрически метод Ньютона эквивалентен замене небольшой дуги кривой y=f(x) касательной, проведенной в некоторой точке кривой. В самом деле, положим для определенности, что f" (х) > 0 при а≤ x ≤ b и f(b) > 0 (рис. 5).
Рис. 5
Выберем, например, х0 = b, для которого f(x0) f" (x0) > 0. Проведем касательную к кривой y=f(x) в точке B0[х0, f(x0)].
В качестве первого приближения х1 корня ξ возьмем абсциссу точки пересечения этой касательной с осью 0х. Через точку B1[x1,f(x1)] снова проведем касательную, абсцисса точки пересечения которой даст нам второе приближение х2 корня ξ и т. д. (рис. 5). Очевидно, что уравнение касательной в точке Вn [хn,f(хn)] (n = 0, 1,2, ...) есть
Полагая y = 0, x=xn+1, получаем следующее приближение корня
Рис. 6
Заметим, что если в нашем случае положить x0 = a и, следовательно, f(x0)f" (х0) < 0, то, проведя касательную к кривой у = f(х) в точке А[а, f(a)], мы получили бы точку x1 (рис. 5), лежащую вне отрезка [a,b]. То есть при этом выборе начального значения метод Ньютона оказывается непрактичным. Таким образом, в данном случае «хорошим» начальным приближением х0 является то, для которого выполнено неравенство f(x0)f" (х0) > 0.
Пример реализации алгоритма решения систем нелинейных уравнений методом Ньютона в SMath Studio представлен на рис. 6.
Пользователь задаёт уравнения системы (допускается ввод как одного уравнения, так и нескольких) и начальные приближения. Расчёт вычисления корней системы нелинейных уравнений производится с использованием матрицы Якоби. Алгоритм позволяет также задать точность, с которой необходимо получить корни.
В результате работы программа демонстрирует полученные корни и проводит их проверку путём подстановки полученных корней в начальную систему уравнений. Для анализа работы алгоритма в примере выводится количество итераций (шагов в цикле), за которое удалось достигнуть результата.
Задание. При выполнении лабораторной работы необходимо изучить программную реализацию метода Ньютона (рис. 6), ввести программу в компьютер и решить примеры в соответствии со своим вариантом.