Решение систем ОДУ первого порядка



Для решения в MathCadсистемы уравнений любым из рассмотренных ниже методов исходная, т.е. записанная в математической форме система уравнений:

, , (1)

где t-аргумент(обычно подразумевается время),

fk(t,y1,y2,…yn) - заданная функция своих аргументов, должна быть преобразована к виду:

, (2)

где Y- вектор (матрица-столбец) искомых функций,

D(t,Y)- вектор (матрица-столбец) значений производных – вектор правых частей системы уравнений в любой точке решения, представленного в виде матрицы-столбца(Y(t).

Использование решающего блока Given …Odesolveявляется одним из способов решения систем ОДУ первого порядка. На рабочем листе система уравнений должна быть записана с производными слева, порядок записи начальных условий несущественен. Как и ранее правая часть уравнений отделяется от левой символом эквивалентности (выделенный знак равенства). Пример решения системы 3-х уравнений приведен на рис.3.

Решение системы ОДУ методом Рунге-Кутта

Кроме блока Given…OdesolveвMathCadимеется ещё несколько функций, реализующих классические алгоритмы численного решения задачи Коши для систем обыкновенных дифференциальных уравнений. Важнейшими из них являются методы Рунге-Кутта интегрирования уравнений с фиксированным (rkfixed) шагом и с переменным шагом (Rkadapt), которые практически всегда приводят к решению. Аналогичные задачи позволяет решать и метод Булирша-Штера( Bulirsch-Stoer) с переменным и фиксированным шагом (функция Bulstoer), который в некоторых случаях даёт более точное решение при меньших затратах машинного времени. Для решения систем с вырожденной матрицей ОДУ предназначена функцияRadau, которая реализует метод Розенброка.

Рис. 3. Пример решения системы ОДУ решающим блоком

Given …Odesolve.

Решение системы ОДУ методом Рунге-Кутта с фиксированным шагом интегрирования (функция rkfixed)

Функция rkfixed возвращает матрицу S1 размерности (n+1)*npoitsзначений решения системыn- обыкновенных дифференциальных уравненийна отрезке [t0, t1] изменения аргумента t, определенного производными в векторе D(t,Y) и начальными условиями, заданными вектором Y0,методомРунге-Кутта с постоянным (заданным) шагом изменения аргумента. Параметр n -точек задаёт число строк в матрице результата. Очевидно, чем больше число n-точек , тем точнее аппроксимация решения. Пример решения ОДУ методом Рунге-Кутта представлен на рис.4.

Обращение к функции имеет вид: rkfixed(Y, t0, t1, npoints, D).

Для решения системы уравнений с использованием этой функции необходимо:

  • присвоить начальное t0и конечное значенияt1отрезка интегрирования (аргумента t);
  • задать (присвоить) число точек интегрирования (параметр npoints);
  • cоздать вектор начальных условий с именемY0размерности n;
  • создать вектор D(t,Y)правых частей системы уравнений – производных,размерностьюn;
  • напечатать решение: S1:=rkfixed(Y0, t0,t1, npoints, D).

Рис. 4. Пример решения системы ОДУ функцией

rkfixed(y, x1, x2, npoints, D) и выводом решения в табличной форме

Решение системы уравнений представляет собой матрицу размерности (n+1)*npoits, поэтому для просмотра и оформления результатов необходимо аргументуtи искомым функциям присвоить значения соответствующих элементов векторов-столбцов матрицы решений S1 (интерполировать матрицу системой функций):

- значение вектора аргумента,

- значение первой функции,

- значение второй функции, (3)

- значение n-йфункции.


Дата добавления: 2018-04-05; просмотров: 597; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!