Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Labs Matlab / Lab2 / index5

.htm
Скачиваний:
49
Добавлен:
01.06.2015
Размер:
3.12 Кб
Скачать

№ 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)

Очевидно, что в данном случае файл-функция не требуется.

Соседние файлы в папке Lab2