Newton's Method, For Numerical analysis. working matlab code. numeric analysis Newton's method. MATLAB provides tools to solve math. Using linear programing techniques we can easily solve system of equations. This file provides a running code of Newtons Method
Describes the mathematics of the Calculus of Variations.
For comments please contact me at solo.hermelin@gmail.com.
For more presentations on different subjects visit my website on http://www.solohermelin.com
Model matematika penyebaran penyakit dengan empat kompartemen (susceptible, exposed, infected, recovered). Model ini merupakan pengembangan model Blyuss dengan menambahkan pergerakan antar lokasi. Dokumen ini menjelaskan analisis keberadaan dan ketunggalan solusi model tersebut dengan mereduksi integral yang menyatakan difusi global dan menyajikan model dalam bentuk persamaan.
Newton's Method, For Numerical analysis. working matlab code. numeric analysis Newton's method. MATLAB provides tools to solve math. Using linear programing techniques we can easily solve system of equations. This file provides a running code of Newtons Method
Describes the mathematics of the Calculus of Variations.
For comments please contact me at solo.hermelin@gmail.com.
For more presentations on different subjects visit my website on http://www.solohermelin.com
Model matematika penyebaran penyakit dengan empat kompartemen (susceptible, exposed, infected, recovered). Model ini merupakan pengembangan model Blyuss dengan menambahkan pergerakan antar lokasi. Dokumen ini menjelaskan analisis keberadaan dan ketunggalan solusi model tersebut dengan mereduksi integral yang menyatakan difusi global dan menyajikan model dalam bentuk persamaan.
1. Лекція 4. Методи одновимірної безумовної оптимізації без
використання інформації про похідну
Задача безумовної оптимізації полягає у знаходженні мінімуму або
максимуму функції при відсутності будь-яких обмежень.
Функція ( )f x , визначена на відрізку [ ], ,a b називається унімодальною,
якщо існує єдина точка *
,x в якій ( )f x набуває екстремального значення. Для
визначеності визнаємо, що мова йде про мінімум функції ( )f x на відрізку
[ ],a b . Зазначимо, що унімодальна функція не повинна бути гладкою або навіть
безперервною. З визначення унімодальності випливає, що якщо *
1 2x x x〈 〈 , то
1 2( ) ( )f x f x〉 . Також, якщо *
1 2x x x≤ 〈 , то 1 2( ) ( )f x f x〈 . Задача складається з
побудови такої послідовності { }kx , щоб при деякому i мінімальне значення
функції досягалося на інтервалі *
1i ix x x− ≤ 〈 . Цей інтервал називається
інтервалом невизначеності. У подальшому будемо розуміти під інтервалом
невизначеності відрізок [ ], ,a b якому належить точка мінімуму, однак її точне
значення невідоме.
В основі багатьох методів лежить процедура виключення з інтервалу
[ ], ,a b якої-небудь його частки, яка не містить мінімуму.
Мінімізація строго унімодальної функції однієї змінної не потребує
розрахунків похідної. Для розрахунків таких задач оптимізації існують наступні
методи: рівномірний пошук; дихотомічний пошук; метод золотого перетину;
метод Фібоначчі.
З використанням інформації про похідну функції, яка мінімізується,
існують методи ділення пополам і Ньютона.
Для зменшення інтервалу невизначеності з допомогою розрахунків
значень функції у двох належних інтервалу точках існує теорема 2.1.
ТЕОРЕМА 2.1. Нехай 1
:f X R→ строго унімодальна на інтервалі [ ],a b .
Нехай [ ]1 2, ,x x a b∈ такі, що 1 2x x〈 . Якщо 1 2( ) ( )f x f x〉 , то 3 2( ) ( )f x f x≥ для усіх
[ )3 1,x a x∈ . Якщо 1 2( ) ( ),f x f x≤ то 3 1( ) ( )f x f x≥ для усіх ( ]3 2,x x b∈ .
Як випливає із теореми 2.1 при 1 2( ) ( )f x f x〉 новим інтервалом
невизначеності є [ ]1,x b . З іншого боку, якщо 1 2( ) ( ),f x f x≤ то новим інтервалом
невизначеності буде [ ]2,a x (рис. 2.1).
2. Розглянемо більш детальнішо зазначені методи розв’язання задач
одновимірної оптимізації.
Рівномірний пошук
Інтервал невизначеності [ ],a b поділяється на підінтервали сіткою з точок
a k+ δ для 1,2,...,k n= , де ( 1)b a n= + + δ (див. рис. 2.2). Функція f
розраховується у кожній з n точок сітки. Нехай x - точка сітки з найменшим
значенням f . Якщо функція f строго унімодальна, то точка її мінімуму
належить інтервалу ,x x − δ + δ .
Після n – розрахунків f інтервал невизначеності зменшено до розмірів 2δ .
Оскільки ( )[ ]/ 1n b a= − δ − , то для подальшого зменшення інтервалу
невизначеності необхідно збільшити число розрахунків функції f . Для
зменшення числа розрахунків спочатку будують сітку з крупною коміркою і
потім переходять до сітки з малим розміром комірки.
Дихотомічний пошук
Розглянемо строго унімодальну функцію 1
:f X R→ , яку потрібно мінімізувати
на інтервалі [ ],a b . Найменше число розрахунків значень функції для зменшення
інтервалу невизначеності рівне двом. Визначимо дві точки 1 2,x x . На рис. 2.3а
1 1 1 2( ) ( )f x f x〈 і, отже, за теоремою 2.1 новим інтервалом невизначеності буде
3. [ ]2,a x . Для 2f він буде [ ]1,x b . Таким чином, залежности від функції довжина
нового інтервалу невизначеності рівна 2x a− або 1b x− . Раніше було не відомо
чи буде 1 2( ) ( )f x f x〈 чи 1 2( ) ( )f x f x〉 . Оптимальна стратегія вибору точок 1x і
2x полягає в мінімізації максимуму з 2x a− і 1b x− . Це може бути досягнуто
вибором в якості 1x і 2x середини інтервалу [ ],a b . Проте у цьому випадку
будемо мати тільки одну точку і далі не зможемо зменшити інтервал
невизначеності. При цьому 1x і 2x вибираємо симетрично на відстані 0ε〉 від
середини інтервалу (рис. 2.3b). Число ε має
настільки малим, щоб довжина нового інтервалу невизначеності ( ) / 2b aε + −
була достатньо близькою до теоретично оптимального значення ( ) / 2b a− і в
той же час такою, щоб значення 1( )f x і 2( )f x були розпізнавальними.
Алгоритм дихотомічного пошуку
Початковий етап. Вибрати константу 2 0ε〉 і кінцеву допустиму довжину
інтервалу невизначеності 0l〉 . Визначаємо [ ],a b і 1k = та переходимо до
основного етапу.
Основний етап.
Крок1. Якщо k kb a l− 〈 , то стоп; точка мінімуму належить інтервалу [ ],a b .
В іншому випадку розраховуємо
1 2,
2 2
k k k ka b a b
x x
+ +
= − ε = + ε
і переходимо до кроку 2.
Крок 2. Якщо 1 2( ) ( )f x f x〈 , то приймаємо 1k ka a+ = і 1 2kb x+ = . В іншому
випадку приймаємо 1 1ka x+ = і 1k kb b+ = . Замінимо k на 1k + і перейти до кроку
1.
4. Довжина інтервалу невизначеності на початку ( 1)k + - ї ітерації рівна
1 1
1 1
( ) ( ) 2 (1 )
2 2
k k i ik k
b a b a+ +− = − + ε − .
Ця формула може бути використана для визначення числа ітерацій, необхідних
для досягнення бажаної точності. Оскільки кожна ітерація потребує двох
вимірів, то ця формула може бути використана для визначення числа
розрахунків функції f .
Метод золотого перетину
Нехай на k - й ітерації методу золотого перетину інтервал невизначеності
рівний [ ],k ka b . Новий інтервал [ ]1 1,k ka b+ + згідно з теоремою 2.1 рівний [ ]1, kx b ,
якщо 1 2( ) ( )f x f x〉 , і [ ]2,ka x , якщо 1 2( ) ( )f x f x〈 . Точки 1x і 2x вибираються з
наступного:
1. Довжина інтервалу 1 1k kb a+ +− не залежить від результату на k - ї
ітерації, тобто чи виконується лі обмеження 1 2( ) ( )f x f x〉 або 2 1( ) ( )f x f x≥ .
Крім того, має виконуватися рівняння 1 2k kb x x a− = − .
Таким чином, якщо
1 (1 )( )k k kx a b a= + − α − , (2.1.1)
де (0,1)α∈ , то для 2x повинне бути
2 ( )k k kx a b a= + α − , (2.1.2)
отже 1 1 ( )k k k kb a b a+ +− = α − .
2. Для нової ітерації 1x і 2x вибираються так, що або 1( 1)kx + нової ітерації
збігається з 2( )kx попередньої ітерації, або 2( 1)kx + нової ітерації збігається з 1( )kx
попередньої ітерації. Якщо цього досягти, то на 1k + -ї ітерації потрібний буде
тільки один новий розрахунок функції. Це випливає з рис. 2.4.
Випадок 1. 1( ) 2( )( ) ( )k kf x f x〉 . У цьому випадку 1 1( )k ka x+ = і 1k kb b+ = .
Використаємо рівняння (2.1) з заміною k на 1k + . При 1( 1)kx + 1k + -ї ітерації
маємо 2( ) 1( 1) 1 1 1 1( ) 1(1 )( ) (1 )( )k k k k k k kx x a b a x b x+ + + += = + + α − = + − α − .
Підставляємо вираз для 1( )kx і 2( )kx із (2.1) і (2.2) у це рівняння, одержимо
α2
+ α + 1 = 0.
ак х1(к) х2(к) вк
випадок 1: ак+1 х1(к+1) х2(к+1) вк+1
випадок 2: ак+1 х1(к+1) х2(к+1) вк+1
Рис. 2.4
5. 2. Випадок 2. 1( ) 2( )( ) ( )k kf x f x≤ . У цьому випадку 1k ka a+ = і 1 2( )k kb x+ = .
Використаємо рівняння (2.2.) з заміною k на 1k + . При 2( 1) 1( )k kx x+ = маємо
1( ) 2( 1) 1 1 1 2( )( ) ( )k k k k k k k kx x a b a a x a+ + + += = + α − = + α − .
Підставляючи (2.1.) і (2.2.) у цій вираз, одержимо 2
1 0α + α + = .
Коренями рівняння 2
1 0α + α + = є α1 ≅ 0,618. Таким чином, якщо на k –й
ітерації 1( )kx і 2( )kx вибрано по (2.1.) і (2.2.), де α1 ≅ 0,618, то 1k + - й інтервал
стискається з коефіцієнтом 0,618. На перший ітерації необхідно здійснювати
два розрахунку функції в точках 1x і 2x , але в наступних ітераціях
потребується тільки один розрахунок, оскільки 1( 1) 2( )k kx x+ = або 2( 1) 1( )k kx x+ = .
Приклад. Розглянемо наступну задачу:
мінімізувати 2
2x x+
при умовах 3 5.x− ≤ ≤
Як видно, мінімізуєма функція строго унімодальна і початкова довжина
інтервалу невизначеності рівняє восьми. Будемо зменшувати довжину
інтервалу не більше як 0,2. Перші дві точки розраховуються наступним чином:
1
2
3 0,382 8 0,056
3 0,618 8 1,944.
x
x
= − + × =
= − + × =
Оскільки 1 2( ) ( )f x f x〈 , то новий інтервал невизначеності рівний [-3;
1,944]. Результати наведені в табл. 2.1
Таблиця 2.1
Розрахунки за методом золотого перетину
к ак вк х1 х2 f(x1`) f(x2)
1 -3,000 5,000 0,056 1,944 0,115 7,667
2 -3,000 1,944 -1,112 0,056 -0,987 0,115
3 -3,000 0,056 -1,832 -1,112 -0,308 -0,987
4 -1,832 0,056 -1,112 -0,664 -0,987 -0,887
5 -1,832 -0,664 -1,384 -1,112 -0,853 -0,987
6 -1,384 -0,664 -1,112 -0,936 -0,987 -0,996
7 -1,384 -0,936 -1,208 -1,112 -0,957 -0,987
8 -1,208 -0,936 -1,112 -1,032 -0,987 -0,999
9 -1,112 -0,936
Після восьми ітерацій, які містять дев’ять розрахунків функції, інтервал
невизначеності рівний [-1,112, -0,936], так що у якості точки мінімуму може
бути взята, наприклад, середина інтервалу –1,024. Точкою точного мінімуму є –
1,0.
На рис. 2.5 наведено алгоритм методу золотого перетину.
6. ПОЧАТОК
, , ,а в l α
1
2
(1 )( )
( )
x a b a
x a b a
= + − α −
= + α −
1 1
2 2
( )
( )
y f x
y f x
=
=
1 2y y〈
ні так
1
1 2
2 ( )
a x
x x
x a b a
=
=
= + α −
2
2 1
1 (1 )( )
b x
x x
x a b a
=
=
= + − α −
1 2
2 2( )
y y
y f x
=
=
2 1
1 1( )
y y
y f x
=
=
b a l− ≤
ні
*
( ) / 2x a b= +
друк
*
x
кінець
Рис. 2.5.
7. Метод Фібоначчі
Подібно методу золотого перетину процедура пошуку Фібоначчі
потребує два розрахунки функції на першій ітерації, а на наступних – тільки по
одному. Однак ця процедура відрізняється від методу золотого перетину тим,
що зменшення інтервалу невизначеності змінюється від ітерації до ітерації.
Процедура основана на послідовності Фібоначчі { }Fν , в якої кожне
наступне число визначається як сума двох попередніх:
1 1, 1,2,...,F F Fν+ ν ν−= + ν = (2.3)
0 1 1.F F= =
Така послідовність має від 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ... На k - й ітерації
інтервал невизначеності рівний [ ],k ka b . Дві точки 1( )kx і 2( )kx визначаються
наступним чином:
1
1( )
1
( ), 1,2,...,n k
k k k k
n k
F
x a b a k n
F
− −
− +
= + − = , (2.4)
2( )
1
( ), 1,2,...,n k
k k k k
n k
F
x a b a k n
F
−
− +
= + − = , (2.5)
де n ―задане загальне число розрахунків функції.
За теоремою (2.1) новий інтервал невизначеності [ ]1 1,k ka b+ + рівний
1( ),k kx b , якщо 1( ) 2( )( ) ( )k kf x f x〉 , i 2( ),k ka x , якщо 1( ) 2( )( ) ( )k kf x f x≤ . У першому
випадку, враховуючи вирез (2.4) і вважаючи n kν = − в (2.3), отримуємо
1
1 1 1( )
1 1
( ) ( )n k n k
k k k k k k k k k k
n k n k
F F
b a b x b a b a b a
F F
− − −
+ +
− + − +
− = − = − − − = − . (2.6)
У другому випадку, враховуючи (2.5), маємо
1 1 2( )
1
( )n k
k k k k k k
n k
F
b a x a b a
F
−
+ +
− +
− = − = − . (2.7)
Таким чином, в обох випадках довжина інтервалу невизначеності
зменшується з однаковим коефіцієнтом 1/n k n kF F− − + .
Якщо 1( ) 2( )( ) ( )k kf x f x〉 , то за теоремою 2.1 1 1( )k ka x+ = і 1k kb b+ = . Таким
чином, застосовуючи (2.4) з заміною k на 1k + , отримуємо
2 2
1( 1) 1 1 1 1( ) 1( )( ) ( ).n k n k
k k k k k k k
n k n k
F F
x a b a x b x
F F
− − − −
+ + + +
− −
= + − = + −
Підставляючи вираз для 1( )kx із (2.4), отримуємо
1 2 1
1( 1)
1 1
( ) (1 )( ).n k n k n k
k k k k k k
n k n k n k
F F F
x a b a b a
F F F
− − − − − −
+
− + − − +
= + − + − −
Якщо підставити n kν = − у вираз (2.3), то можна отримати
1 1 11 ( / ) /n k n k n k n kF F F F− − − + − − +− = . Підставляючи це рівнянні у вираз для 1( 1),kx +
отримуємо
1 2
1( 1)
1
( )( )n k n k
k k k k
n k
F F
x a b a
F
− − − −
+
− +
−
= + − .
8. Якщо підставити у рівняння (2.3) 1n kν = − − та врахувати (2.5), то
можна отримати
1( 1) 2( )
1
( )n k
k k k k k
n k
F
x a b a x
F
−
+
− +
= + − = .
Також, якщо 1( ) 2( )( ) ( )k kf x f x≤ , то 2( 1) 1( )k kx x+ = . Таким чином, на ( 1)k + -й
ітерації або 1( 1) 2( )k kx x+ = , або 2( 1) 1( )k kx x+ = , тобто потрібно лише один
розрахунок функції.
Щоб забезпечити подальше зменшення інтервалу невизначеності, точку
останнього розрахунку злегка перемішуємо праворуч або ліворуч від середньої
точки 1( 1) 2( 1)n nx x− −= так, щоб 1 11/ 2( )n nb a− −− була довжиною кінцевого
інтервалу невизначеності [ ],n na b .
Загальне число n розрахунків функції має бути визначене заздалегідь. Це
пояснюється тим, що точки, в яких здійснюються розрахунки, визначаються за
формулами (2.4) і (2.5) і, отже, залежать від n . Із формул (2.7) і (2.6) видно, що
довжина інтервалу невизначеності зменшується на k -й ітерації з коефіцієнтом
1/n k n kF F− − + . Отже, після 1n − -й ітерації, де n – задане загальне число
розрахунків функції, довжина інтервалу зменшиться від 1 1b a− до
1 1( ) /n n nb a b a F− = − . Звідси n має бути вибране так, щоб величина
1 1( ) / nb a F− узгоджувалася з заданою точністю.
Алгоритм методу Фібоначчі
Початковий етап. Вибираємо допустиму кінцеву довжину інтервалу
невизначеності 0l〉 і точність розрахунку 0ε〉 . Задаємо початковий інтервал
невизначеності [ ]1 1,a b і вибираємо число n розрахунків функції так, щоб
1 1( ) /nF b a l〉 − . Покладемо 1 1 2 1 1 2 1 1 1 1( / )( ), ( / )( ).n n n nx a F F b a x a F F b a− −= + − = + −
Розрахуємо 1( )f x і 2( )f x , покладемо 1k = і перейдемо до основного етапу.
Основний етап:
Крок 1. Якщо 1( ) 2( )( ) ( )k kf x f x〉 , то перейти до кроку 2, якщо
1( ) 2( )( ) ( )k kf x f x≤ , то до кроку 3.
Крок 2. Покладемо 1 1( )k ka x+ = , 1k kb b+ = . Потім покладемо 1( 1) 2( ),k kx x+ =
2( 1) 1 1 1 1( / )( )k k n k n k k kx a F F b a+ + − − − + += + − . Якщо 2k n= − , то перейти до кроку 5; у
іншому випадку розраховуємо 2( 1)( )kf x + і переходимо до кроку 4.
Крок 3. Покладемо 1k ka a+ = , 1 2( )k kb x+ = , 2( 1) 1( ),k kx x+ =
1( 1) 1 2 1 1( / )( )k k n k n k k kx a F F b a+ + − − + + += + − . Якщо 2k n= − , то перейдемо до кроку 5;
у іншому випадку розраховуємо 2( 1)( )kf x + і переходимо до кроку 4.
Крок 4. Замінимо k на 1k + і перейдемо до кроку 1.
Крок 5. Покладемо 1( ) 1( 1)n nx x −= і 2( ) 1( ) .n nx x= + ε Якщо 1( ) 2( )( ) ( )n nf x f x〉 , то
покладемо 1( )n na x= і 1n nb b −= . В іншому випадку, тобто якщо 1( ) 2( )( ) ( )n nf x f x≤ ,
9. то покладемо 1n na a −= і 1( )n nb x= . Стоп; оптимальне рішення в інтервалі
[ ],n na b .
Приклад. Розглянемо попередню задачу. Встановимо, щоб довжина
кінцевого інтервалу невизначеності не перевищувала 0,2. Отже, 8 / 0,2 40nF 〉 = ,
так що 9n = . Виберемо 0,01ε = . Два перших розрахунків значень функції
проводимо в точках
7
1(1)
9
3 (8) 0,054545;
F
x
F
= − + = 8
2(1)
9
3 (8) 1,945454.
F
x
F
= − + =
Зазначимо, що 1(1) 2(1)( ) ( )f x f x〈 . Отже, новий інтервал невизначеності
рівний [ ]3,000000,1,945454− . Процедура повторюється, результати розрахунків
наведені в табл. 2.2. Зазначимо, що при 8k = маємо 1( ) 2( ) 1( 1)k k kx x x −= = , отже, на
цьому етапі не має необхідності розраховувати функцію. Для 9k = маємо
1( ) 1( 1) 0,963636k kx x −= = − і 2( ) 1( ) 0,953636.k kx x= + ε = −
Оскільки 2( ) 1( )( ) ( )k kf x f x〉 , кінцевий інтервал невизначеності [ ]9 9,a b
рівний [-1,109091, -0,963636], довжина якого 0,145455l = . За наближене
значення точки мінімуму візьмемо середину цього відрізка –1,036364.
Таблиця 2.2
Результати обчислень за методом Фібоначчі
к ак вк х1(к) х2(к) f(x1(k)) f(x2(k))
1 -3,000000 5,000000 0,054545 1,945454 0,112065 7,675699
2 -3,000000 1,945454 -1,109091 0,054545 -0,988099 0,112065
3 -3,000000 0,054545 -1,836363 -1,109091 -0,300497 -0,988099
4 -1,836363 0,054545 -1,109091 -0,672727 -0,988099 -0,892892
5 -1,836363 -0,672727 -1,399999 -1,109091 -0,840001 -0,988099
6 -1,399999 -0,672727 -1,109091 -0,963636 -0,988099 -0,998677
7 -1,109091 -0,672727 -0,963636 -0,818182 -0,998677 -0,966942
8 -1,109091 -0,818182 -0,963636 -0,963636 -0,998677 -0,998677
9 -1,109091 -0,963636 -0,963636 -0,953636 -0,998677 -0,997850
Нагадаємо, що у попередньому прикладі після числа розрахунків функції 9n =
маємо довжину інтервалу невизначеності рівну 0,176.
Порівняння методів лінійного пошуку без розрахунків похідної
При заданій унімодальній на інтервалі [ ]1 1,a b функції f кожен із
розглянутих методів дає за кінцеве число кроків точку x , що *
x x l− ≤ , де l ―
довжина кінцевого інтервалу невизначеності, а *
x ― точка мінімуму на
заданому інтервалі. При заданій довжині кінцевого інтервалу невизначеності,
яка задовольняє потребуємому ступеню точності, необхідне число розрахунків
функції n може бути визначене як найменше додатне ціле, що задовольняє
наступним співвідношенням:
10. метод рівномірного пошуку 1 12( )
1;
b a
n
l
−
≥ −
дихотомічний пошук
2
1 1
1
;
2
т
l
b a
≥ −
метод золотого перетину 1
1 1
(0,618) ;n l
b a
−
≥
−
метод Фібоначчі 1 1
.n
b a
F
l
−
≥
З наведених виразів видно, що потрібне число розрахунків є функцією
відношення ( )1 1 /b a l− . Для фіксованого значення ( )1 1 /b a l− найменше число
потрібних розрахунків функції відповідає більш ефективному алгоритму. З цієї
точки зору найбільш ефективним алгоритмом є метод Фібоначчі, далі – метод
золотого перетину, дихотомічного пошуку і метод рівномірного пошуку.
Зазначимо, що для досить великих n значення 1/ nF наближається до
( ) 1
0,618
n−
, тому методи Фібоначчі і золотого перетину є майже ідентичні.