Page 131 - 363_
P. 131
132
потребують, щоб у процедурі правих частин було лише два вхідних параметри,
а у процедури FM1 їх три), а по-друге, така форма потребує утворення нових
М-файлів методів чисельного інтегрування, як це створено зараз.
Можна цього уникнути, перетворюючи ім’я додаткової функції Mpfun на
глобальну змінну. Тоді процедура правих частин може бути записана у вигляді:
function z = FM2(t,y);
% Процедура правих частин рівняння Фізичного Маятника.
% Здійснює розрахунок вектора “z” похідних вектора “у” змінних стану
% за формулами:
% z(l)=y(2);
% z(2)= - sin(y(l)) +S(t,y),
% де вхідні параметри:
% mpfun - ім'я процедури S(t,y)
% mpfun = 'S';
% t - поточний момент часу;
% у - поточне значення вектора змінних стану;
% вихідні параметри:
% z - вектор значень похідних від змінних стану.
global MPFUN
z(l) = y(2);
z(2) = - sin(y(l)) + feval(MPFUN,t,y);
% Кінець процедури FM2
Тепер процедура FM2 має лише два вхідних параметри, що передаються
через заголовок, і може бути використаною будь-якою процедурою чисельного
методу інтегрування, у тому числі, процедурами ode23 та ode45. Необхідно
лише пам'ятати, що у головній програмі, де здійснюється звернення до
процедури, змінній MPFUN спочатку слід присвоїти деяке текстове значення
(ім'я функції, яка буде використовуватися у процедурі правих частин), а потім
вона має бути оголошеною як глобальна. Наприклад, якщо буде використана
раніше утворена процедура MomFunl, у головному Script-файлі повинні
існувати рядки:
MPFUN = 'MomFml';
global MPFUN.
12.3 Завдання
Завдання 1. Створити М-файл методу чисельного інтегрування
диференційних рівнянь відповідно до формул, наведених у таблицях 12.1
(Методи Рунге-Кутта – y m+1 = y m+ h F(t m, y m) ) та 12.2 ( багатокрокові методи).