О численных методах решения систем уравнений
Если Вы решаете "хорошие" уравнения, как все те, которые были приведены в предыдущих разделах, то можете никогда не задумываться, как именно Mathcad ищет их корни. Однако даже в этом случае полезно представлять, что происходит "за кадром", т. е. какие действия совершаются в промежутке между введением необходимых условий после ключевого слова Given и получением результата после применения функции Find. Это важно хотя бы с позиций выбора начальных значений переменных перед вычислительным блоком. Рассмотрим в данном разделе некоторые особенности численных методов и возможности установки их различных параметров, которые предоставляет Mathcad.
Функция Find реализует градиентные численные методы. Покажем их основную идею на примере уравнения с одним неизвестным f(x)=0 для функции f (х)=х2 +5х+2, график которой показан на рис. 8.4. Основная идея градиентных методов состоит в последовательных приближениях к истинному решению уравнения, которые вычисляются с помощью производной от f (х). Приведем наиболее простую форму алгоритма, называемого методом Ньютона:
- За нулевую итерацию принимается введенное пользователем начальное значение х0=х.
- В точке хо методом конечных разностей вычисляется производная f'(х0).
- Пользуясь разложением Тейлора, можно заменить f (х) в окрестности хо касательной – прямой линией f(x)=f(х0)+f(х0)(х-х0).
- Определяется точка x1, в которой прямая пересекает ось х (см. рис. 8.4).
- Если f (x1)<TOL, то итерации прерываются, и значение x1 выдается в качестве решения. В противном случае x1 принимается за новую итерацию, и цикл повторяется: строится касательная к f (х) в точке x1, определяется х2 – точка ее пересечения с осью х и т. д.
Рис. 8.4. Иллюстрация метода Ньютона
Модификация алгоритма Ньютона для решения системы нескольких уравнений заключается в линеаризации соответствующих функций многих переменных, т. е. аппроксимации их линейной зависимостью с помощью частных производных. Например, для нулевой итерации в случае системы двух уравнений используются выражения.
Чтобы отыскать точку, соответствующую каждой новой итерации, требуется приравнять оба равенства нулю, т. е. решить на каждом шаге полученную систему линейных уравнений.
Mathcad предлагает три различных вида градиентных методов. Чтобы поменять численный метод:
- Щелкните правой кнопкой мыши на названии функции Find.
- Наведите указатель мыши на пункт Nonlinear (Нелинейный) в контекстном меню.
- В появившемся подменю (рис. 8.5) выберите один из трех методов: Conjugate Gradient (Сопряженных градиентов), Quasi-Newton (Квази-Ньютоновский) или Levenberg-Marquardt (Левенберга).
Рис. 8.5. Смена численного метода