Вычислительный блок Given/Odesolve

Вычислительный блок для решения одного ОДУ, реализующий численный метод Рунге-Кутты, состоит из трех частей:

- Given – ключевое слово;

- ОДУ и начальные условия, записанные с помощью логических операторов, причем начальное условие должно быть в форме y(t0)=b;

- odesolve(t,t1) – встроенная функция для решения ОДУ относительно переменной t на интервале (t0,t1). Допустимо задание функции odesolve(t,t1,step)с тремя параметрами, где step –внутренний параметр численного метода, определяющий количество шагов, в которых метод Рунге-Кутты будет рассчитывать дифференциальное уравнение. Чем больше step, тем с лучшей точностью будет получен результат, но тем больше времени будет затрачено на его поиск.

Задание 1. Реализуйте следующий пример и проанализируйте полученные результаты:

Результатом применения блока Given/Odesolveявляется функция y(t), определенная на промежутке (t0,t1). Можно построить график этой функции, используя графические средства MathCAD, или получить значения в какой-либо точке.

Встроенные функции rkfixed, Rkadapt, Bulstoer

Для решения ОДУ можно использовать встроенные функции. Этот способ несколько проигрывает первому как в простоте, так и наглядности и используется в ранних версиях MathCAD.

Задание 2. Реализуйте следующий пример и проанализируйте полученные результаты:

Результат решения здесь представлен не в виде функции, а в виде матрицы размерности M×2. Она состоит из двух столбцов: в одном находятся значение аргумента t (отt0 до t1 включительно), а в другом соответствующие значения искомой функции y(t). График решения соответствует получению решения в матричном виде, поэтому по осям отложены соответствующие столбцы, выделенные их матрицы yоператором Столбец матрицы (M<>)

ОДУ высшего порядка

Обыкновенное дифференциальное уравнение с неизвестной функцией y(t), в которое входят производные этой функции вплоть до y(N)(t), называются ОДУ N-го порядка. Если имеется такое уравнение, то для корректной постановки задачи Коши требуется задать N начальных условий на саму функцию y(t) и ее производные от первого до (N-1)-го порядка включительно.

В MathCAD можно решать ОДУ высших порядков как с помощью вычислительного блока Given/Odesolve, так и путем сведения их к системам уравнений первого порядка.

Внутри вычислительного блока:

- ОДУ должно быть линейно относительно старшей производной, т.е. фактически должно быть поставлено в стандартной форме;

- начальные условия должны иметь форму y(t)=b или y(N)(t)=b, а не более сложную (как, например: y(t)+y'(t)=b).

В остальном, решение ОДУ высших порядков ничем не отличается от решения уравнений первого порядка.

Задание 3. Откройте новый документ и решите задачу Коши для ОДУ второго порядка. Проанализируйте полученные результаты.

В этом задании решено уравнение затухающего гармонического осциллятора, который описывает, например, колебания маятника. Для модели маятника y(t) описывает изменения угла отклонения от вертикали, y'(t) –угловая скорость маятника (для ввода символа производной используется левая верхняя клавиша символьной клавиатуры), y'' (t) –ускорение, а начальные условия, соответственно, начальное отклонение маятника y(0)=0.1 и начальная скорость y'(0)=0.

Второй способ решения ОДУ высшего порядка связан со сведением его к эквивалентной системе ОДУ первого порядка. Если обозначить y0(t)≡y(t), а

y1(t) ≡y'(t)=y0'(t), тот исходное уравнение запишется через функции y0(t) и y1(t) в виде системы двух ОДУ:

y0'=y1,

y1'+0.1·y1+1·y0=0.

Методика решения такой системы приведена в следующем разделе.

Системы ОДУ первого порядка

MathCAD требует, чтобы система дифференциальных уравнений была представлена в стандартной форме:

y0'(t)=f0(y0(t),y1(t),…, yN-1(t),t),

y1'(t)= f0(y0(t),y1(t),…, yN-1(t),t), (1)

yN-1'(t)= fN-1(y0(t),y1(t),…, yN-1(t),t)

Задание системы (1) эквивалентно следующему векторному представлению:

Y'(t)=F(Y(t),t), (2)

где Y и Y' – соответствующие неизвестные векторные функции переменной t размера N×1, а F – векторная функция того же размера и (N+1) количества переменных (N компонент вектора и, возможно,t). Именно векторное представление (2) используется в среде MathCAD для ввода системы ОДУ.

Для того чтобы определить задачу Коши для системы ОДУ, следует определить еще N начальных условий, задающих значение каждой из функций yi(t0)в начальной точке интегрирования системы t0. В векторной форме они могут быть записаны в виде:

Y(t0)=B,(3)

где B – вектор начальных условий размера N×1,составленный из yi(t0).

Здесь задача сформулирована для систем ОДУ первого порядка. Если в систему входят уравнения высших порядков, то ее можно свести к системе большего числа уравнений первого порядка.

Наши рекомендации