При решении дифференциального уравнения искомой величиной является функция. Для обыкновенных дифференциальных уравнений неизвестная функция – это функция одной переменной. Для дифференциальных уравнений в частных производных – это дифференциальные уравнения, в которых неизвестной является функция двух или большего числа переменных. Пакет MathCAD имеет ряд встроенных функций, предназначенных для решения дифференциальных уравнений. В результате решения получается матрица, содержащая значения функции, вычисленные на некотором множестве точек (некоторой сетке значений).
При использовании метода Рунге-Кутта, применяется функция rkfixed(y, x1, x2, n, f), которая выдает результат решения системы обыкновенных дифференциальных уравнений методом Рунге-Кутта четвертого порядка с фиксированным шагом интегрирования в виде таблицы. Ее можно использовать для решения как одного дифференциального уравнения, так и системы дифференциальных уравнений. Эта функция имеет пять аргументов:
· y – вектор начальных значений искомых функций;
· x1 – начальное значение независимой переменной;
· х2 – конечное значение независимой переменной;
· n – фиксированное число шагов интегрирования;
· F – правые части системы уравнений, записанные в виде вектора в символьном виде.
Пример 53. Решить методом Рунге-Кутта дифференциальное уравнение первого порядка y' = х + cos( y/1.25) при заданных начальных значениях: y0(0.4)=0.8 и х [0.4, 1.4].
1. Запишите начальное значение Y0 := 0.8 (рис. 79).
где y0– вектор начальных значений искомой функции;
0.4 – начальное значение независимой переменной;
1.4 – конечное значение независимой переменной;
20 – количество шагов интегрирования;
F – правые части системы уравнений, записанные в виде вектора в символьном виде.
Функция rkfixed(y,x1,x2,n,F) выдает таблицу результатов решений с (m+1) столбцами и n строками, где m – число уравнений в системе. Нулевой столбец таблицы – это текущее значение независимой переменной (аргумента) х. Переменные определяются через x1, x2,… ,xn. Последующие столбцы решения определяют значения искомых функций y1(x), y2(x),… для соответствующих значений аргумента х (рис. 80-81).
Рис. 80. Решение дифференциального уравнения методом Рунге-Кутта (начало)
Рис. 81. Решение дифференциального уравнения методом Рунге-Кутта (конец)
Пример 54. Решить дифференциальное уравнение f''(x)-f(x)=х при заданных начальных значениях: f(0)=3, f(6)=140, используя функцию odesolve.
Алгоритм и результат решения представлен на рис. 82.