Решение обыкновенных дифференциальных уравнений первого порядка

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

Пример. Решить задачу Коши:

dx

— + х = sin(x • t), х(0) = 1,5. dt

Решение этой задачи с помощью решающего блока и функции odesolve представлено на рис. 4.33.

Для того, чтобы дифференциальное уравнение вида F(t,х,х') = 0можно было решить с помощью других функций Mathcad, его необходимо преобразовать к каноническому виду 184

х = Поэтому перепишем исходное уравнение следующим образом: — =-х + sin(x • ?)•

Решение дифференциального уравнения первого порядка с помощью функции Odesolve

Given

Дифференциальное уравнение и начальное условие

... + x(t) = sin(x(t) -t) x(0) =1.5

x ;= Odesolve (i,35)

Решение задачи Коши с помощью функции odesolve

Рис. 4.33. Решение задачи Коши с помощью функции odesolve

На рис. 4.34 представлено решение задачи Коши с помощью функции rkfixed.

Как видно из рис. 4.34, при достаточно большом шаге в методе Рунге-Кутта с постоянным шагом накапливается большая ошибка. Если уменьшить шаг, то решение будет найдено точнее. При дальнейшем уменьшении шага решения, найденные с помощью функций rkfixed и odesolve, совпадут.

Правая часть дифференциального уравнения

D(t,x) := —х + sin(x-t)

Решение дифференциального уравнения на интервале [0;35]

(35 - 0)

с шагом интегрирования ------= 1

  • -----Xrkfixed
  • —X (Odesolve)

Рис. 4.34. Решение задачи Коши с помощью функции rkfixed с шагом ht= 1

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

Рассмотренные выше функции позволяют решать не только дифференциальные уравнения первого порядка, но и уравнения более высоких порядков, а также системы уравнений.

Пример. Решить задачу Коши:

х" + х'+х = е~* + cos jc, х(0) = 1, х (0) = 0, х"(0) = 0.4.

На рис. 4.35 приведен пример использования оператора odesolve для решения этой задачи.

Пример решения дифференциального уравнения третьего порядка

Given

Дифференциальное уравнение

d3 -t

—= x(t) + x'(t) + x(t) = e + cos(t) dt3

Начальные условия

Решение уравнения с помощью функции odesolve

t := 0 .. 6

x(t) =

_________1_

  • 1.297
  • 1.894
  • 1.073
  • -2.336
  • -5.358
  • -1.851

Рис. 4.35. Решение задачи Коши с помощью функции odesolve

Пример. Решить задачу Коши:

х = cos(t • у) у' = sin(x +1 ? у)

, х(0) = 0, у(0) = 0 на интервале [0; 10].

На рис. 4.36 представлено решение задачи с помощью функции odesolve.

При решении систем ОДУ с помощью функции odesolve необходимо:

• внутри решающего блока записать уравнения и начальные условия;

a:=0 b := 10

Given

Уравнения и начальные условия

x'(t) = ccs(x(t)y(t)) y'(t) = sm(x(t) +? ty(t))

x(a) = 0 y(a) = 0

Обращение к функции Odesolve

1 [1] 1

"1

:= Odesolve

,t,b

Решение задачи Коши с помощью функции odesolve

Рис. 4.36. Решение задачи Коши с помощью функции odesolve

• обратиться к функции odesolve с тремя обязательными параметрами: первый - массив имен функций (в нашем случае -

  • [1] ), второй - имя независимой переменной, третий - конечная w точка интервала решения задачи. Функция odesolve вернет вектор-функцию - решение задачи Коши для системы. Решение задачи с помощью функций rkfixed, Rkadapt и Bulstoer дает результаты, схожие с представленным на рис. 4.36.
 
Посмотреть оригинал
< Пред   СОДЕРЖАНИЕ ОРИГИНАЛ   След >