Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Решение одного нелинейного уравнения




Найти действительный нуль функции одной переменной позволяет функция fzero, которая в зависимости от формы задания функции реализует следующие хорошо известные численные методы: деления отрезка пополам, секущей и обратной квадратичной интерполяции. Обращение к функции

z = fzero(func, x0);

где х0 – начальное значение аргумента, в окрестности которого отыскивается действительный корень функции func; z – найденное значение корня. Начальное значение х0 можно задать в виде вектора – границ интервала поиска корня. На концах указанного интервала функция должна иметь значения разных знаков. В противном случае будет выдано сообщение об ошибке.

Входных аргументов у функции fzero может быть и больше. Например, можно указать третий фактический параметр

z = fzero(func, x0, options);

здесь options – управляющая структура задания дополнительных параметров для управления вычислительным процессом и контроля за ним. Формирование структуры выполняется функцией optimset. В общем случае аргументы задаются попарно по схеме

options=optimset('вид контроля',значение);

Наиболее часто используемые параметры optimset приведены в табл. 8.1.

 

Таблица 8.1

Вид контроля Значение Результат
Display 'off' Информация о вычислительном процессе не выводится
'iter' Выводится информация о каждом шаге вычислительного процесса
'final' Выводится информация только о завершении вычислительного процесса
'notify' Выводится предупреждение, если процесс не сходится (используется по умолчанию)
MaxIter положительное целое число Максимальное количество итераций вычислительного процесса
TolFun положительное вещественное число Точность по функции для останова вычислений
TolX положительное вещественное число Точность по аргументу для останова вычислений

 

Вызов функции optimset без входных аргументов позволяет получить в командном окне Matlab перечень всего множества параметров с их допустимыми значениями (в фигурных скобках указываются значения, принятые по умолчанию).

Список выходных аргументов функции fzero также может быть расширен

[z, fval,flag] = fzero(func, x0, tol, trace);

где fval – реальное значение функции в найденном приближении к корню z, flag – признак решения: 1 – корень найден; -1 – не удалось определить интервал со сменой знака функции; -3 – в процессе вычислений получена бесконечность (inf) или выполнена операция с неопределенным результатом (nan), например, деление нуля на ноль; -4 – в ходе вычислений получилось комплексное значение; -5 – решение сошлось в особую точку.

Пример: Найдем корни уравнения .

Выполним отделение корней графическим методом. Построим график функции на интервале [-5; 5]:

fplot('sin(x)-x.^2.*cos(x)', [-5 5])

grid

Из графика функции (рис. 8.1) видно, что у нее 4 корня: вблизи х =-5, х =-2, х=0 и х =5. Уточним корень вблизи х =-5:

fx=inline('sin(x)-x.^2.*cos(x)');

[x1, fval]=fzero(fx,-5)

Получим уточненное значение корня x1 = -4.7566 и значение функции в нем fval = 2.6645e-15.

За одно обращение к fzero можно уточнить только один корень. Важной особенностью fzero является и то, что она вычисляет только вещественные корни и только те из них, в которых функция меняет знак, а не касается оси абсцисс. Так, например найти корень уравнения х 2 = 0 при помощи fzero не удастся! Нет интервалов, на которых функция меняет свой знак. А корень есть!

 




Поделиться с друзьями:


Дата добавления: 2014-11-08; Просмотров: 519; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.007 сек.