Использование функции rkfixed

                                                                         

Функция 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, просмотров: 1404.