Функция rkfixed() использует метод Рунге-Кутта четвертого порядка. Формат функции:
rkfixed(y,x1,x2,npoints,D)
,где y- вектор начальных условий размерности;
n (n – порядок дифференциального уравнения или число уравнений в системе, если решается система уравнений);
x1,x2- граничные точки интервала, на котором ищется решение дифференциального уравнения;
npoints- число точек (не считая начальной точки), в которых ищется приближенное решение. По этому аргументу определяется число точек (1+npoints) в матрице, возвращаемой функцией rkfixed();
D(x,y)- функция, возвращающая значение в виде вектора из n элементов, содержащих первые (младшие) производные неизвестных функций.
Рассмотрим пример решения обыкновенных линейных дифференциальных уравнений первого порядка с помощью функции rkfixed():
· Пусть дана ОДУ:
· Также заданы начальные условия:
· Зададим количество в которых ищется приближенное значение. Построим для сравнения две функции (для каждой функции зададим различное количество точек и посмотрим различия):
N1=20
N2=100
· Для обеих функций возьмем одинаковый интервал [0; 8*π]
· Старшей в данном выражении является первая производная у`. Следовательно все остальное выражение является младшей функцией. Запишем:
· Зададим функции:
· Теперь построим оба графика в одной системе координат и сравним их. Известно, что функция rkfixed возвращает матрицу, содержащую в первом столбце значения х, во втором столбце – у. Следовательно, строим график на основе матриц, выданных функциями:
Примечание: цифра в фигурных скобках указывает столбец матрицы (данный элемент устанавливается сочетанием клавиш Ctrl +6).
График наглядно показывает, что увеличение количества точек, в которых ищется приближенное решение, повышает точность решения ОДУ.
Решение систем ДУ.
MathCad 200x требует, чтобы система ОДУ была представлены в виде:
Также должны быть представлены начальные условия в виде:
,где b, c, t – числа.
Для решения систем ОДУ применяются следующие функции:
· Rkfixed(y0,t0,t1,M,D) – реализует метод Рунге – Кутты с фиксированным шагом;
· Rkadapt(y0,t0,t1,M,D) – реализует метод Рунге – Кутты с переменным шагом;
· Bulstoer(y0,t0,t1,M,D) – реализует метод Булирша-Штера.
где y0 – вектор начальных значений в точке t0 размера N×1;
t0 – начальная точка расчета;
t1 – конечная точка расчета;
М – число шагов, на которых численный метод находит решение;
D – векторная функция размера N×1 двух аргументов – скалярного t и векторного y. При этом у – искомая векторная функция аргумента t того же размера N×1.
Дата: 2018-09-13, просмотров: 7551.