Labs Matlab / Lab2 / index5
.htm№ 4. Численное решение нелинейных уравнений Задача нахождения корней нелинейных уравнений встречается в различных областях научно-технических исследований. Проблема формулируется следующим образом. Пусть задана непрерывная функция f(x) и требуется найти корень уравнения
f(x) = 0.
Будем предполагать, что имеется интервал изменения х [a; b], на котором необходимо исследовать функцию f(x) и найти значение х0, при котором f(x0) равно или весьма мало отличается от нуля.
Данная задача в системе MATLAB может быть решена следующим образом. Вначале необходимо построить график функции f(x) на заданном интервале и убедиться в существовании корня или нескольких корней. Затем применить программы поиска корней. Если существует один корень и график f(x) пересекает ось ох, то можно применить программу fzero. Программа fzero использует известные численные методы: деление отрезка пополам, секущей и обратной квадратичной интерполяции.
Пример. Найти корень нелинейного уравнения
10х + 2х – 100 = 0
на отрезке [1.5; 2.5].
Появляется окно с графиком функции 10х + 2х – 100, из которого следует, что корень функции на заданном интервале существует. Для точного определения корня применяем функцию fzero.
Естественно, для работы данной программы нам понадобится m-функция:
Результат: X = 1.9824
В более общем случае функция fzero() имеет следующие реализации:
fzero('f(х)', х)
fzero('f (х)', [xl, х2])
Здесь приняты следующие обозначения:
'f(х)' — решаемое уравнение, взятое в одиночные кавычки;
х — начальное приближение (значение) искомого корня;
[x1, х2]—область изоляции корня.
Например, для решения данной задачи мы могли бы написать
X = fzero ( '10.^x + 2.*x - 100.0', 2)
Очевидно, что в данном случае файл-функция не требуется.