Студопедия

КАТЕГОРИИ:


Архитектура-(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)

Нули и экстремумы функций

Как известно, решение уравнений и поиск экстремумов функций - родственные задачи. Так решение системы fi(X)=0, i=1,...,n можно заменить поиском минимума , заведомо равного нулю, если система имеет решение. С другой стороны, поиск экстремумов функции можно свести к решению системы уравнений относительно нулевых значений ее производных.

Для некоторых классов функций имеются вполне универсаль-ные методы решения: так для полиномов поиск корней реализуется без каких-то условий обобщенным методом Ньютона - функцией roots(...). В общем случае при великом многообразии методов реше-ние подобных задач отнюдь нетроивиально. В системе реализованы функции лишь для простейших задач без гарантий получения реше-ния.

xmin=fmin(' имя ',a,b), xmin=fmin(' имя ',a,b, <опции> ), xmin= fmin (' имя ', a,b, <опции>, p1,...,p10), [xmin,options]=fmin(...) - поиск минимума функции одной переменной на интервале [a,b]; в списке <опции> можно указать option(1)=1 (вывод промежуточных результатов), option(2)- погрешность итераций для аргумента (разница между смежными приближениями; по умолчанию 10-4) и option(14)- максимальное число итераций (по умолчанию 500). Используется метод золотого сечения и параболической интерполяции.

function r=m1(x)
r=x^2-x-3;
>> xm=fmin('m1',-2,3,[1, 1e-6])
Func evals x f(x) Procedure
  -0.0901699 -2.9017 initial
  1.09017 -2.9017 golden
  1.81966 -1.5085 golden
  0.5 -3.25 parabolic
  0.5 -3.25 parabolic
  0.5 -3.25 parabolic
xm =
0.5000

xmin=fmins(' имя ',x0), xmin=fmins(' имя ',x0, <опции> ), xmin= fmins (' имя ', x0, <опции> или [], p1,...,p10), [xmin,options]=fmins(...) - поиск минимума функции нескольких переменных: x0 - начальное приближение; p1,...,p10 - дополнительные параметры; в списке <опции> можно указать option(1)=1 (вывод промежуточных результа-тов), option(2)- погрешность итераций для аргумента (разница между смежными приближениями; по умолчанию 10-4), option(3)-итерационная погрешность для функции и option(14)- максимальное число итераций (по умолчанию 200 x n).

function r=m2(x)
r=(x(1)-1)^2+(x(2)-3)^2;
>> [xmin,opt]=fmins('m2',[0.5 2.5])
xmin =
1.0000 3.0000  
opt =
  0.0001 0.0001 0.0000       0.0000    
            0.0000 0.1000  

(возвращаемые здесь опции 8 и 10 определяют минимум функции и число итераций). Используется метод Нелдера-Мида (строится симплекс из n+1 вершины в n-мерном пространстве, берется новая точка внутри или вблизи симплекса и может заменить одну из вершин; процесс повторяется до малого диаметра симплекса).

fzero(' имя ',x0), fzero(' имя ',x0,eps), fzero (' имя ', x0, eps, trace), fzero (' имя ', x0, eps, trace,p1,...,p10) - поиск действительных корней функции одной переменной при начальном приближении х0 (можно взять и в форме [a,b] при условии f(a) x f(b) < 0) с заданной относительной погрешностью; trace=1 - вывод промежуточных результатов. Используется метод дихотомии, хорд и обратной квадратической интерполяции. При поиске корней полинома см.roots.

Процесс поиска корня виден из примера:

>>> fzero('sin',6,[],1)
Func evals x f(x) Procedure
    -0.279415 initial
  5.83029 -0.437567 search
  6.16971 -0.113236 search
  5.76 -0.499642 search
  6.24 -0.0431719 search
  5.66059 -0.583146 search
  6.33941 0.0561963 search
Looking for a zero in the interval [5.6606, 6.3394]
  6.27974 -0.00344052 interpolation
  6.28319 1.70244e-006 interpolation
  6.28319 -3.35667e-012 interpolation
  6.28319 -2.44921e-016 interpolation
  6.28319 2.41961e-015 interpolation
ans = 6.28318530717959
>> 2*pi
ans = 6.28318530717959

Заметим, что в случае двух переменных существенную помощь для выбора начального приближения может оказать функция gradient (cм. 8.2) и contour(...), которая будет рассмотрена при ознакомлении с функциями графики.

<== предыдущая лекция | следующая лекция ==>
Численное интегрирование | Обыкновенные дифференциальные уравнения
Поделиться с друзьями:


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


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



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




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