відбувається поки довжина відрізка більша за о. Метод називається золотого перерізу тому, що при виборі точок c i d задовільняється умова
(c - a)/(b - a) = (b - d)/(b - a) ? 0.38. Ця умова дозволяє використовувати значення f(c) або f(d) вже обчислені на попередньому кроці циклічного процесу.
Алгоритм методу золотого перерізу представляє собою цикл з розгалуженням всередині циклу. Перед циклом знаходять місцезнаходження точок c i d за формулами: c = a + 0.38*(b-a), d = b - 0.38*(b - a) та обчислюють y1 = f(c) i y2=f(d). В циклі перевіряють умову: якщо f(c) < f(d), то b = d, d = c, y2 = y1, c = a + 0.38*(b-a), y1 = f(c), інакше a = c, c = d, y1 = y2, d = b - 0.38*(b - a), y2 = f(d). Цикл виконується поки b - a > о.
3.2. Графічний алгоритм підпрограми оптимізації функцій
ні
так
ні
так
3.3. Опис алгоритму оптимізації функцій
Блок 1. Входимо в підпрограму.
Блок 2. Оголошення коефіцієнтів і присвоєння їм значень.
Блок 3. Обчислюємо початкове значення коефіцієнта оптимізації c=a+0.38*b.
Блок 4. Звернення до функції (Метод обчислення означеного інтегралу: лівих прямокутників). Присвоєння коефіцієнту у1 результату виконання функції.
Блок 5. Обчислюємо початкове значення коефіцієнта оптимізації
c=b-0.38*b.
Блок 6. Звернення до функції (Метод обчислення означеного інтегралу: лівих прямокутників). Присвоєння коефіцієнту у2 результату виконання функції.
Блок 7. Зациклення програми за допомогою оператора циклу з передумовою b-a>0.001.
Блок 8. Розгалуження за допомогою умовного оператора (умова:у1<у2).
Блоки 9-14(15-20).Переприсвоїння значень коефіцієнтів оптимізації.
Блок 21. Завершення підпрограми; повернення значення коефіцієнта u.
4. Підпрограма розв’язування системи дифрівнянь
4.1. Перетворення заданого дифрівняння в систему дифрівнянь
Для перетворення заданого дифрiвняння в систему рiвнянь першого по---рядку застосуємо таку пiдстановку:
Ваpiант 0: y=x3;
y'=x3'=x2;
y''=x3''=x2'=x1.
Система дифрiвнянь прийме вигляд
x1'=(b0-a0*x3-a1*x2-a2*x1)/a3;
x2'=x1;
x3'=x2.
Початковi умови: x1=x2=x3=0 при t=0. Вихiдна величина y=x3.
4.2. Опис методу розв’язування системи дифрівнянь
Постановка задачі (задача Коші) має вигляд диференціального рівняння з початковими умовами
yР = f(t,y), y = y0 при t = t0. t Є [a, b].
Для її наближеного розв’язання застосовуються так звані однокрокові методи: Ейлера, Ейлера покращений, Ейлера-Коші та Рунге-Кута. Їх суть полягає в тому, що діапазон інтегрування [a, b] ділять на n елементарних відрізків довжиною h. Значення шуканої функції в точці t0=a відомо з початкових умов, а її обчислення в першій і наступних точках аж до точки tn=b виконують за поданими нижче формулами. При цьому h=(b-a)/n, t0 = a, tn = b, ti+1 = ti+h, yi=f(ti), i=0,1,2, ... n.
Алгоритм розв’язування дифрівняння однокроковими методами представляє собою цикл з накопиченням суми.
Метод Рунге-Кута має четвертий порядок точності. На кожному кроці циклічного обчислювального процесу знаходять допоміжні коефіцієнти a, b, c, d. Формули мають такий вигляд:
a = f(ti, yi);
b = f(ti+h/2, yi + ha/2);
c = f(ti+h/2, yi + hb/2);
d = f(ti+h, yi + hc);
yi+1 = yi + h(a + 2b + 2c + d)/6.
4.3. Графічний алгоритм розв’язування системи дифрівнянь
systema()
4.4. Опис графічного алгоритму розв’язування системи дифрівнянь
Блок 1. Входимо в підпрограму.
Блок 2. Оголошення коефіцієнтів і присвоєння їм початкового значення 0.
Блок 3. Обчислюємо значення коефіцієнтів b0, a0.
Блок 4. Зациклення програми за допомогою оператора циклу з початковою умовою і=0,умовою виконання циклу і?n та кроком 1.
Блоки 5,8,11,14,17. Зациклення програми за допомогою оператора циклу з початковою умовою j=0,умовою виконання циклу j?m та кроком 1.
Блоки 6,9,12,15,18. Обчислення коефіцієнтів для методу розв’язування системи дифрівняння aj, bj, cj,dj,; обчислення значення функції уj де F1=zj+(aj+2*( bj+ cj)+ dj)/6 .
Блоки 7,9,13,16. Звернення до функції (система диференціальних рівнянь).
Блок 19. Присвоєння ybi значення y2.
Блок 20. Завершення підпрограми.
Опис графічного алгоритму системи дифрівнянь ( systema() )
Блок 1. Входимо в підпрограму.
Блок 1. Обчислення значення f0=(b0-a0*y2-a1*y1-a2*y0)/a3.
Блок 1. Обчислення значення f1= у0.
Блок 1. Обчислення значення f2= у1.
Блок 20. Завершення підпрограми.
5. Підпрограма числового інтегрування функцій
5.1. Опис методу числового інтегрування функцій
Постановка задачі обчислення означеного інтегралу функції має вигляд
.
Інтеграл функції чисельно дорівнює площі (на рисунку 1 заштрихована), обмеженій лініями: t=a, t=b, y=0 i y=f(t). Для її наближеного обчислення застосовуються методи: прямокутників, трапецій і парабол, які передбачають заміну кривої y=f(t) відповідно ступінчатою та ламаною лініями або параболою. Суть цих методів полягає в тому, що діапазон інтегрування [a, b] ділять на n елементарних відрізків довжиною h, після чого виконують обчислення за поданими нижче формулами, які називаються квадратурними. При цьому h=(b-a)/n, t0 = a, tn = b, ti+1 = ti+h, yi=f(ti).
Алгоритм числового інтегрування функцій представляє собою цикл з накопиченням суми.
Метод правих прямокутників s = h*(y1 + y2 + y3 + ... + yn) або .
5.2. Графічний алгоритм числового інтегрування функцій
Рисунок 5.2
5.3. Опис графічного алгоритму числового інтегрування функцій
Блок 1. Входимо в підпрограму.
Блок 2. Звернення до функції ( Метод розв'язування системи дифрівнянь: Рунге-Кута )
Блок 3. Присвоєння сумі значень елементів масиву у початкового значення (= 0).
Блок 4. Зациклення програми за допомогою оператора циклу.
Блок 5. Нарощення суми.
Блок 6. Знаходження добутку суми елементів массиву у на крок інтегрування.
Блок 7. Завершення підпрограми; повернення значення добутку суми на крок S.
6. Підпрограма побудови графіка функції
6.1. Графічний алгоритм побудови графіка
6.2. Опис алгоритму побудови