Численные методы решения нелинейных
Решить систему уравнений [f(xn)] = 0 численно — значит найти, а точнее подобрать (подогнать) такие значения [xn], которые обнулят систему полиномов [f(xn)]. В процессе подгонки, по текущим результатам нужно принимать решение о том, какие значения искомых переменных [xn+1] подставлять в следующий раз (n – индекс текущего приближения корня). Для этого существуют разные методы.
Метод Ньютона для решения уравнения и системы уравнений:
xn+1 = xn - f(xn) / f '(xn) ,
[xn+1] = [xn] - [f '(xn)]-1
[f(xn)] .
Метод Ньютона-Рафсона предполагает возможность относительного изменения шага итерации a:
[xn+1] = [xn] - [f '(xn)]-1
[f(xn)] an .
Модифицированный метод Ньютона предполагает замораживание инверсной матрицы производных (инверсного Якобиана) на первом шаге:
[xn+1] = [xn] - [f '(x0)]-1
[f(xn)] .
Но в этом случае наблюдается лишь линейное схождение. Хотя, через несколько итераций, инверсный Якобиан можно обновлять.
Метод секущих:
xn+1 = xn - f(xn) (xn - xn-1) / (f(xn) - f(xn-1)) .
Здесь невозможно вести речь об оценке производной конечной разностью, поскольку шаг итерации очень большой.
В VisSim'е, переменной xn соответствует блок "неизвестная", а блок "нулевой баланс" считывает с модели значение функции f(xn). Приведенные же выше формулы используются для расчета значения на выходе блока "неизвестная" на следующем шаге итерации.
Основные итерационные методы сходятся весьма быстро. Для того чтобы текущее приближение стало более чем в миллион раз ближе к корню, методу дихотомии
требуется 40 итераций, методу золотого сечения – 29, методу Ньютона еще меньше. Очевидно, что линейные системы уравнений решаются за одну итерацию. А ими, например, описываются почти все задачи дисциплины "ТОЭ" изучаемые студентами в вузе.