Алгоритмічна та програмна реалізація методу Рунге-Кутта четвертого порядку 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

Алгоритмічна та програмна реалізація методу Рунге-Кутта четвертого порядку



Var x0,y0,x,y,b,h: real;

k1,k2,k3,k4: real;

i,n: integer;

Begin

<введення вихідних даних>

h:=(b-x0)/n;

x:=x0; y:=y0;

for i:=1 to n do

begin

k1:=x+y;

k2:=(x+h/2)+(y+h*k1/2);

k3:=(x+h/2)+(y+h*k2/2);

k4:=(x+h)+(y+h*k3);

у:=у+h*(k1+2*k2+2*k3+k4)/6;

<виведення x,y>

x:=x+h;

end;

end.

 

Примітка:

у програмі реалізовано розв’язання диференційного рівняння, що розглянуте у прикладі.

 

 

Порядок виконання роботи

Вибрати індивідуальне завдання у Таблиці 10.1. і виконати всі пункти завдання із Розділу 10.3, застосувавши для розв’язання заданого диференційного рівняння метод Рунге-Кутта четвертого порядку.


Заняття № 12

Розробка програми

визначення екстремумів функцій градієнтним методом

Мета роботи: Закріплення знань із застосування градієнтних методів для визначення екстремумів функцій, розробка відповідного алгоритму і програми на мові Pascal і застосування її для розв’язання індивідуального завдання.

Теоретичні відомості

Загальні положення

Екстремумом функції називається її мінімальне або максимальне значення. У загальному випадку функція може мати декілька екстремумів. Один із них – головний - називається глобальним, інші - локальні. Задача пошуку екстремумів зводиться до їх локалізації і уточнення значень параметрів та функції в точці екстремума.

На параметри накладаються, зазвичай, обмеження у вигляді нерівностей . В межах відрізку функцію вважаємо унімодальною, тобто такою, що має один екстремум. За таких умов для пошуку екстремуму функції найчастіше застосовують методи можливих напрямків. Це методи послідовних наближень, у яких, в результаті виконання ряду кроків оптимізації у просторі параметрів, формується послідовність точок , що збігається до точки екстремума функції . Їх сукупність складає траєкторію спуску до мінімуму (максимуму) функції.

На траєкторії спуску кожна наступна точка повинна бути кращою за попередню точку по критерію оптимальності:

- якщо визначається мінімум функції , і - якщо визначається максимум функції.

Координати кожної точки на траєкторії спуску обчислюються за рекурентною формулою:

(12.1)

де - вектори координат -ї і наступної -ї точок траєкторії;

- коефіцієнт кроку. Дозволяє впливати на довжину кроку при переході від точки до точки . В роботі приймається як постійна величина ;

- крок, задає напрям кроку.

Градієнтний метод

Градієнтом функції в точці називається вектор, ортогональний до дотичної до поверхні рівня функції в цій точці площини і направлений в сторону найшвидшого збільшення функції. Позначається .

Протилежний йому напрям антиградієнта показує шлях найшвидшого зменшення функції.

Визначений таким чином напрям вектора-градієнта (антіградієнта) дозволяє виконувати оптимальні кроки і спрямовувати траєкторію спуску в бік екстремума функції, який треба знайти. Саме тому в градієнтному методі кроки оптимізації виконуються вздовж вектора градієнта:

(12.2)

Знак залежить від виду екстремуму функції, який визначається:

знак “+” - при пошуку максимуму функції, знак “-” – мінімуму.

Вектор-градієнт визначається через похідні функції по всім незалежним змінним:

(12.3)

Вони є складовими вектора, визначають його напрям і довжину. Для визначення чергового кроку необхідно обчислювати, відповідно до (12.2), значення похідних .

З врахуванням (12.1) і (12.2) рекурентна формула градієнтного метода набуває вигляду:

(12.4)

Вона дозволяє отримати координати чергової -ї точки на траєкторії спуску до екстремуму функції.

При наближенні до екстремуму функції довжина вектора-градієта зменшується. В точці екстремуму вона дорівнює нулю. Якщо чергова точка траєкторії наблизилась до екстремуму в межах заданої точності , то виконуватиметься умова:

(12.5)

де - - норма вектора, яка дорівнює його довжині. Обчислюється як корінь із суми квадратів складових вектора .

Координати цієї точки і значення функції в ній і є розв’язком задачі.

Загальний алгоритм визначення екстремума функції

градієнтним методом

1. Підготовчий етап:

· визначення структури вектора-градієнта і аналітичних виразів його складових диференціюванням функції по усім змінним ;

2. вибір коефіцієнту кроку ;

3. Вибір і завдання начальних наближень вектора змінних , які є координатами початкової точки траєкторії спуску. Обчислення значення функції в цій точці ;

4. Обчислення значень похідних функції (складових вектора-градієнта) в точці : ;

5. Контроль завершення відповідно до умов (12.5). Якщо ці умови не виконуються – перехід до п. 5, якщо виконується – до п. 6;

6. Виконання кроку вздовж вектора-градієнта, заданого його складовими, відповідно до (12.4), визначення координат чергової точки :

.

Повернення до п. 3;

7. Точка траєкторії спуску , координати якої визначені в результаті останнього кроку, є шуканим екстремумом функції із заданою точністю .

Обчислюємо значення функції в цій точці .

 

Приклад визначення екстремумів функції градієнтним методом

Знайти максимум функції однієї змінної в інтервалі з точністю .

 

1. Визначаємо структуру вектора-градієнта. Він має одну складову:

.

Приймаємо коефіцієнт кроку ;

2. Як початкове наближення параметра беремо початок інтервалу . Значення функції в цій точці:

Виконуємо крок оптимізації ().

3. Вектор-градієнт в точці початкового наближення х(0):

4. Контроль завершення відповідно до (12.5):

.

Необхідно виконати наступний крок (к=1).

5. Координати наступної точки траєкторії спуску відповідно до (12.4):

.

Значення функції в цій точці:

F(X(1)) = 0.1*(Х(1))3 – 2*(Х(1))2 + 10*Х = 0.1*(2.6875)3 – 2*(2.6875)2 +10*2.6875 =14.3708.

Переходимо до наступного кроку ():

Повторюємо кроки оптимізації до досягнення заданої точності. Результати розрахунків записуємо в таблицю:

 

Крок                    
2.5 2.6875 2.8292 2.9376 3.0215 3.0868 3.1379 3.1781 3.2099 3.235
F(X(к)) 14.0625 14.3708 14.5479 14.652 14.7145 14.7525 14.7759 14.7903 14.7994 14.8051
1.875 1.4168 1.0846 0.8384 0.6529 0.5114 0.4023 0.3176 0.2514 0.1995
2.6875 2.8292 2.9376 3.0215 3.0868 3.1379 3.1781 3.2099 3.235 3.255
Крок                    
3.255 3.2708 3.2834 3.2935 3.3015 3.3079 3.313 3.3171 3.3204 3.323
F(X(к)) 14.8086 14.8109 14.8123 14.8132 14.8138 14.8142 14.8144 14.8146 14.8147 14.8147
0.1585 0.1262 0.1005 0.0801 0.064 0.051 0.0401 0.0326 0.026 0.0208
3.2708 3.2834 3.2935 3.3015 3.3079 3.313 3.3171 3.3204 3.323 3.325
Крок                    
3.325 3.3267 3.328 3.3291            
F(X(к)) 14.8148 14.8148 14.8148 14.8148            
0.0166 0.0133 0.0106 0.0085            
3.3267 3.328 3.3291 3.3299            

 

Після виконання 23-го кроку оптимізації довжина вектора-градієнта становить:

.

Розрахунок закінчується.

Максимум функції з точністю дорівнює і досягається при після виконання 23-х кроків оптимізації в напрямку вектора-градієнта. При цьому монотонно зменшується довжина вектора (збігається до нуля) і збільшується значення функції , наближуючись до .

На хід процесу оптимізації можно впливати, змінюючи коефіцієнт кроку .

 

 



Поделиться:


Последнее изменение этой страницы: 2016-08-12; просмотров: 122; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.144.77.71 (0.019 с.)