title ('Графік функції f (x). ');
xlabel ('Вісь x. '); ylabel (' f (x) ');
grid on; hold on;
% -------------------------------------------- p>
k1 = (sqrt (5) -1)/2; k2 = 1-k1;
x1 = k1 * a + k2 * b; x2 = k2 * a + k1 * b;
A = f (x1); B = f (x2);
while 1
if A> B
b = x2;
if b-a
else x2 = x1; B = A; x1 = k1 * a + k2 * b; A = f (x1);
end;
else
a = x1;
if b-a
else x1 = x2; A = B; x2 = k2 * a + k1 * b; B = f (x2);
end;
end;
end;
x = (a + b)/2;
tab = strcat ('%.', int2str (abs (floor (log10 (eps)))), 'g');
% (!) тут задається точність результату (скільки цифр після коми)
% і формат виведення, порівняй Minimum
disp (sprintf (strcat ('% s', tab), 'Максимум функції f (x): x_max = ', x));
% -----------------------------------
% виведемо результат на графік
plot (x, f (x), 'or'); text (x, f (x), 'X_ {max}', 'FontSize', 15);
Б. Програма обчислення мінімуму:
function Minimum (a, b, eps)
% Minimum (a, b, eps) функція знаходження мінімуму функції f (x)
% методом "золотого перетину" на відрізку [a, b] з точністю eps.
% Функція f (x) задається в M-файлі, що знаходяться в тій же діреккторіі. p>% (!) Для правильної роботи функції необхідно, щоб a
% шукане значення було б єдність на [a, b].
k1 = (sqrt (5) -1)/2; k2 = 1-k1;
x1 = k1 * a + k2 * b; x2 = k2 * a + k1 * b;
A = f (x1); B = f (x2);
while 1
if A
b = x2;
if b-a
else x2 = x1; B = A; x1 = k1 * a + k2 * b; A = f (x1);
end;
else
a = x1;
if b-a
else x1 = x2; A = B; x2 = k2 * a + k1 * b; B = f (x2);
end;
end;
end;
x = (a + b)/2;
disp (sprintf ('% s% .15 f', 'Мінімум функції f (x): x_min =', x));
3.2 Керівництво програміста
Запускається файл Example.m, вона викликає 2 функції максимум і мінімум. Функція максимум обчислює максимум У функцію максимум передається проміжок, в якій потрібно обчислити максимум ... У перших рядках будується графік заданої функції. Цикл while - нескінченний цикл. Він зупиняється тільки, якщо у нас похибка обчисленого значення менше заданого eps. Потім задається точність результату (скільки цифр після коми) і формат виводу.
Функція мінімум обчислює мінімум ... У функцію мінімум передається проміжок, в якій потрібно обчислити мінімум ... Цикл while - нескінченний цикл. Він зупиняється тільки, якщо у нас похибка обчисленого значення менше заданого eps. Потім задається точність результату (скільки цифр після коми) і формат виводу. p> 3.3 Керівництво користувача
Для того, щоб обчислити максимум і мінімум необхідно відкрити файл Example.m, ввести проміжки обчислення мінімуму і максимуму, задати eps і натиснути Run (F5). Після чого програма побудує графік заданої функції і вирахує максимум і мінімум.
3.4 Опис усіх використаних в програмі вбудованих функцій MatLab
У програмі використовувалися вбудований функції: plot, grid on, abs, disp, hold on.
plot - функція побудови графіків.
disp - функція, що виводить текстові дані.
grid on - функція включення відображення сітки, яка будується пунктирними лініями.
abs - повертає абсолютну величину для кожного числового елемента вектора x.
hold on - забезпечує продовження виведення графіків в поточне вікно, що дозволяє додавати наступні графіки до вже сеществующім.
Опис вбудованих функцій MatLab допомагають полегшити вирішення систем рівнянь
Важливим завданням чисельних методів - пошук мінімуму функцій f (x) в деякому інтервалі зміни x - від x 1 до x 2. Якщо потрібно знайти максимум такої функції, то достатньо поставити знак "мінус" перед функцією. Для вирішення цього завдання використовується наступна функція:
- fmin ('fun', x1, x2) повертає значення x, яке є локальним мінімумом функції funx на інтеравле x1
- fmin ('fun', x1, x2, options) - схожа з описаною вище функцією, але використовує контрольні параметри options для управління процесом за умовчанням;
- [x, options] = fmin (...) додатково повертає вектор контрольних параметрів options, в десятому стовпці якого міститься число виконаних ітерацій.
У цих уявленнях використовуються такі позначення: x1, x2 - інтервал, на якому шукається мінімум функції; P1, P2 ... - передані у функцію аргументи; fun - рядок, що містить назву функції, яка буде мінімізована; options - вектор контрольних параметрів, що має 18 компон...