8(495)909-90-01
8(964)644-46-00
pro@sio.su
Главная
Системы видеонаблюдения
Охранная сигнализация
Пожарная сигнализация
Система пожаротушения
Система контроля удаленного доступа
Оповещение и эвакуация
Контроль периметра
Система домофонии
Парковочные системы
Проектирование слаботочных сетей
Аварийный
контроль
Раздел: Документация

0 ... 109 110 111 112 113 114 115 ... 365

YpOInit = D; % приближение для начального значения производной YpOFlag =0; % начальное значение производной искомой функции может % измениться при удовлетворении условиям совместности

format long е

% Поиск начального значения производной, удовлетворяющего % условиям совместности

[Y0, YpO] = decic{@klerofun, t0, YOInit, YOFlag, YpOInit, YpOFlag)

% Решение уравнения Клеро на отрезке [0, 5]

[Т, Y] = odel5i(@klerofun, [t0 5], Y0, YpO) ;

% Построение графика приближенного решения

plot(T, Y, о);

hold on

% Построение графика точного решения exsol = inline (х + exp(D); fplot(exsol, [t.0 5])

legend{1приближенное решение,точное решение)

Рис. 6.16. Решение уравнения Клеро


В случае системы дифференциальных уравнений схема решения принципиально не отличается от разобранного примера, только УО, YpO, YOinit, YpOInit, YOFlag и YpOFlag должны быть векторами, как и выходной аргумент функции для вычисления F(t, К, К). Дополнительные возможности

солвера odeibi, в том числе решение систем с заданными параметрами, и опции управляющей структуры описаны в справочной системе MATLAB (см. разд. MATLAB: Mathematics: Differential Equations: Initial Value Problems for ODEs and DAEs: Solver for Fully Implicit ODEs и следующий за ним, а так же станицы, посвященные функциям odelSi и decic).

Предупреждение

9

При формировании структуры options некоторые параметры используются не так, как для остальных солверов. Например, по другому передается матрица Якоби с постоянными коэффициентами, а именно в массиве

ячеек, содержащем две матрицы dF/dy и dF/dy. Работа с массивами ячеек описана в главе 8.

Мы рассмотрели решение задачи Коши для дифференциальных уравнений и систем, включая дифференциально-алгебраические уравнения и общий случай уравнений, не разрешенных относительно старшей производной. Обратимся теперь к другому типу дифференциальных уравнений — дифференциальным уравнениям с запаздывающим аргументом.

Решение дифференциальных уравнений с запаздывающим аргументом

В пакет MATLAB входит солвер dde23 для решения задач, описываемых системами дифференциальных уравнений вида:

У () = f{1 >()>У(*-Ъ) У(1-*2)> ...,y{t-Tk))tt&[a,b], (6.8)

где y(i) — искомая вектор-функция; / — известная вектор-функция правой части системы; Tj, т2, Ц — моменты запаздывания (положительные числа). Для решения системы уравнений (6.8) требуется знать поведение решения для / <а , т. е. вектор-функцию предыстории £(/).

Схема решения дифференциальных уравнений с запаздывающим аргументом в MATLAB состоит из следующих этапов.

1. Написание функции для вычисления правой части системы уравнений, входными аргументами которой являются не только t и у, но и значения компонент решения в моменты времени tt, т2 ,та.


2.Написание функции для предыстории с единственным входным аргументом / (если вектор-функция предыстории является постоянной, то эта функция не является обязательной). .

3.Вызов солвера dde23 с указанием исходных данных: функции правой части системы, моментов запаздывания т]7 т2,..., хк, функции предыстории (или постоянного вектора) и границ отрезка [«, b\.

4.Визуализация результата, который солвер dde23 возращает в структуре.

Разберем решение дифференциальных уравнений на следующем модельном примере: требуется найти решение системы на отрезке [0, 4] с предыстрои-

ей $(t):

>\ =\{У1 (0+Vl (/ -1-5)+y2(i -2));

5(0 =

Уг ="f [Ух (О + Л ("2) +Л("0.5));

(6.9)

Начнем с программирования функции ddefun. Ее входными аргументами должны являться: время г, вектор у компонент решения и матрица Z, столбцы которой содержат значения компонент решения в моменты запаздываний. В нашем случае т, =0.5, т2 =1.5, т3 = 2 и матрица Z имеет следующий вид:

z f.Vi(-Ti) .Vi(>-*2) yii-ъУ [уг(-*\) У20~*г) Ы~тз)/

В функции ddefun мы ввели вспомогательные переменные для вектор-функции у (л), вычисленной в моменты запаздываний (листинг 6.26).

.Листинг 6.26. Файл-функция ddefun для правой части системы уравнений (6.9)

function F = ddefun(t, у, Z)

% Вычисление правой части системы запаздывающих дифференц. уравнений % t - время

% у - вектор со значениями компонент у(1), у(2),у(к)

% Z - матрица со значениями компонент в момент запаздываний: % Z(:, j) = y(t - tau{j)), j = 1, 2, ... k



0 ... 109 110 111 112 113 114 115 ... 365