Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
конспект бейс.doc
Скачиваний:
6
Добавлен:
12.11.2019
Размер:
1.33 Mб
Скачать

21.5. Пошук екстремумів функцій одної та багатьох змінних.

На практиці часто необхідно знайти екстремум (чи екстремуми) деякої цільової функції F(x ,x ,…,x )n змінних х (проектних параметрів). Така функція описує (n+1)-мірну поверхність. Відповідно функція F(x) одного параметру x =x описує деяку криву на площині. Пошук екстремумів функцій однієї змінної є самостійним завданням, яке часто зустрічається. Крім того, йому належить більш складне завдання пошуку екстремумів функцій більшості змінних.

В загальному випадку функція F(x) може містити декілька екстремумів (максимумів чи мінімумів). З них головний (оптимальне рішення для простору проектування) називається глобальним. Завдання пошуку екстремумів зводиться до їх локалізації та конкретизації значень х та F(x) в точці екстримуму. В подальшому для функцій однієї змінної під екстримумом буде матись на увазі максимум F(x). Оскільки максимуму функції F(x) відповідає мінімум функції –F(x), то змінивши знак у F(x), програмами пошуку максимуму можна користуватися і для пошуку мінімуму функцій. Будемо також вважати, що на зміну х (якщо це окремо не обговорено) накладаються обмеження у вигляді нерівності axb, де а та b – межі інтервалу пошуку. Вмежах відрізка а,b функцію рахуємо унімодальною, тобто тою, яка містить один максимум.

Метод рівномірного пошуку базується на тому, що змінній х присвоюються значення х+ х з кроком х=const та обчислюється значення F(x). Якщо F(x )F(x ), то змінна х дістає нове рівняння. Як тільки F(x ) стане меншим за F(x ), пошук зупиниться. При малій заданій похибці цей метод є неекономічним по затратах машинного часу.

Метод порозрядного наближення є різновидністю методу рівномірного пошуку і реалізується слідуючим алгоритмом:

  1. Задаємо початкове наближення х=х зліва від максимуму F(x) і обчислюємо F(x ). Задаємо D=h, де h= x – початковий крок пошуку.

  2. Вважаємо G=F(x ), де початкове F(x )=F(x ), задаємо x=x+D та обчислюємо F(xn+1)=F(x).

  3. Перевіряємо умову F(xn+1)G; якщо вона виконується, то переходимо до п.3, а якщо ні – до п.4.

  4. Вважаємо, що D=-D4. Перевіряємо умову DE4, де E – задана похибка обчислення хm в точці максимуму. Якщо воно виконується, переходимо до п.2, тобто забезпечуємо пошук максимуму в іншому напрямку з кроком, який менший від попереднього на 4 рази.

Програма 15

10 PRINT ‘Пошук максимуму F(x) методом’

15 PRINT ‘ Порозрядного наближення’

20 INPUT ‘Введіть початковий крок пошуку H=’H

25 INPUT ‘Задайте похибку результату E=’E

30 INPUT ‘ Задайте початкове значення x x0=’x

35 LET D=H:GOSUB 80

40 LET G=F:LET X=X+D:GOSUB 80

50 IF FG THEN 40

60 LET D=-D/4: IF ABS(D)>E/4 THEN 40

70 PRINT ‘XM=’X:PRINT’F(XM)=’F:STOP

80 LET F=((.1*X-2)*X+10)*X

90 RETURN:END

Метод дихотомії (розділення інтервалу пошуку a,b на дві частини) реалізується слідуючим алгоритмом:

  1. Перевіряємо умову b-a2E, де E – задана похибка обчислення хm. Якщо ця умова виконується, переходимо до п.2.

  2. Ділимо інтервал пошуку a,b на дві частини і обчислюємо дві абсциси, які розташовані симетрично відносно точки x=(a+b)/2: x1=(a+b-)/2 та x2=(a+b+)/2.

  3. Для цих значень х обчислюємо F(x1) та F(x2).

  4. Перевіряємо умову F(x1)>F(x2). Якщо вона виконується, то вважаємо b=x2 і переходимо до п.1. Якщо не виконується, переходимо до п.5.

  5. Вважаємо a=x1 і переходимо до п.1.

  6. Виводимо на друк xm=(a+b)/2 і обраховуємо F(xm).