И другие программы этой серии
Но число уравнений и неизвестных может и не совпадать. Более того, в вычислительный блок можно добавить дополнительные условия в виде неравенств. Например, введение ограничения на поиск только отрицательных значений х в рассмотренный выше приведет к нахождению другого решения.
Функция Find реализует градиентные численные методы. Покажем их основную идею на примере уравнения с одним неизвестным f (x)=0 для функции f (х)=х2+5х+2, график которой показан на рис. Основная идея градиентных методов состоит в последовательных приближениях к истинному решению уравнения, которые вычисляются с помощью производной от f(x). Приведем наиболее простую форму алгоритма, называемого методом Ньютона:
1. За нулевую итерацию принимается введенное пользователем начальное значение х0=х.
2. В точке х0 методом конечных разностей вычисляется производная f (x0).
3. Пользуясь разложением Тейлора, можно заменить f(х) в окрестности х0 касательной - прямой линией f (x) = f’(x0)+f(x0)(x-x0).
4. Определяется точка x1, в которой прямая пересекает ось х.
5. Если f(х1)
Однако, для решения систем линейных уравнений можно использовать и встроенную функцию lsolve(...). Пусть задана система линейных уравнений:
Матрицы коэффициентов
:
Система может быть представлена как A*X=B, её решение:
Ищем решение матричным способом:
Приближенное решение уравнений
Иногда приходится заменять задачу отделения корней системы уравнений задачей поиска экстремума функции многих переменных. Например, когда невозможно найти решение с помощью функции Find, можно попытаться потребовать вместо точного выполнения уравнений условий минимизировать их невязку(Простейшей целевой функцией может служить невязка уравнений, то есть отличие правой части уравнения от нуля.).