numeric::butcher

Параметры мясника схем Runge-Kutta

Блокноты MuPAD® будут демонтированы в будущем релизе. Используйте live скрипты MATLAB® вместо этого.

Live скрипты MATLAB поддерживают большую часть функциональности MuPAD, хотя существуют некоторые различия. Для получения дополнительной информации смотрите, Преобразуют Notebook MuPAD в Live скрипты MATLAB.

Синтаксис

numeric::butcher(EULER1 | RKF43 | xRKF43 | RK4 | RKF34 | xRKF34 | RKF54a | xRKF54a | RKF54b | xRKF54b | DOPRI54 | xDOPRI54 | CK54 | xCK54 | RKF45a | xRKF45a | RKF45b | xRKF45b | DOPRI45 | xDOPRI45 | CK45 | xCK45 | DOPRI65 | xDOPRI65 | DOPRI56 | xDOPRI56 | BUTCHER6 | RKF87 | xRKF87 | RKF78 | xRKF78 | DOPRI87 | xDOPRI87 | DOPRI78 | xDOPRI78 | GAUSS(s) | GAUSS = s, <digits>)

Описание

numeric::butcher(method) возвращает параметры Мясника схемы Runge-Kutta под названием method.

s этапный Метод Рунге-Кутта для численного интегрирования динамической системы с размером шага h является картой

.

“Промежуточные стадии” k 1, …, k s задан как решения алгебраических уравнений

.

Если s ×s “Матрица мясника” a ij является строго нижним треугольным, метод называется “явный”. В этом случае промежуточные стадии вычисляются рекурсивно как:

.

Различные числовые схемы являются результатом различного выбора параметров Мясника: s ×s-matrix a ij, веса b = [b 1, …, b s] и абсциссы c = [c 1, c 2, …, c s].

Встроенные пары Методов Рунге-Кутта состоят из двух методов, которые совместно используют матричный a ij и абсциссы c i, но используют различные веса b i.

Возвращенный список [s, c, a, b1, b2, order1, order2] содержит данные Мясника метода: s количество этапов, c список абсцисс, a матрица Мясника, b1 и b2 списки весов. Целые числа order1 и order2 порядки схемы при использовании весов b1 или b2, соответственно, в сочетании с матричным a и абсциссы c.

Методы EULER1 (порядок 1), RK4 (порядок 4) и BUTCHER6 (порядок 6) является отдельными методами с b1 = b2 и order1 = order2. Все другие методы являются встроенными парами Runge-Kutta-Fehlberg (RKFxx), Dormand-принц (DOPRIxx) или Наличные-деньги-Karp (CKxxВвод. Имена указывают на порядки подпроцессов, например, CK45 Наличная-Karp пара порядков 4 и 5. CK54 та же пара с обратным упорядоченным расположением подпроцессов. Второй подпроцесс используется, чтобы произвести временной шаг Метода Рунге-Кутта, первый подпроцесс используется в оценке ошибки временного шага.

Методы GAUSS(s) или, эквивалентно, GAUSS = s неявные методы Гаусса с s этапы порядка 2 s.

Данные всех явных методов возвращены как точные рациональные числа. Данные методов Гаусса возвращены как числа с плавающей запятой.

Данные Мясника вызваны стандартными программами numeric::odesolve, numeric::odesolve2, и numeric::odesolveGeometric.

Взаимодействия среды

При вычислении данных для GAUSS(s), функция чувствительна к переменной окружения DIGITS, который определяет числовую рабочую точность.

Примеры

Пример 1

Данные Мясника классических 4 этапов, 4-й порядок схема Runge-Kutta:

numeric::butcher(RK4)

Обратите внимание на то, что веса b1 и b2 совпадите: этот классический метод не обеспечивает встроенную пару.

Данные Мясника (неявных) 3 этапов метод Гаусса:

DIGITS := 5:
numeric::butcher(GAUSS(3));
delete DIGITS:

Пример 2

Данные Мясника встроенного парного RKF34 Runge-Kutta-Fehlberg из порядков 3 и 4:

[s, c, a, b1, b2, order1, order2] := numeric::butcher(RKF34):

Количество этапов s из 4-го порядка подпроцесс равняется 5, абсциссы c и матричный a дают:

s, c, a

Используя эти параметры с весами

b1, b2

дает к числовой схеме порядка 3 или 4, соответственно:

order1, order2

delete s, c, a, b1, b2, order1, order2:

Пример 3

Мы строим области устойчивости двух подметодов DOPRI78. Функцией устойчивости схемы Runge-Kutta параметрами Мясника (c, a, b) дают

,

где e является вектор-столбцом (1, 1, …, 1) T. Для явного s этапная схема (матричный a является строго нижним треугольным), эта функция устойчивости уменьшает до полинома

.

Мы вычисляем коэффициенты полиномов устойчивости, сопоставленных с матрицей Мясника a и веса b1 и b2 из подметодов DOPRI78:

[s, c, a, b1, b2, order1, order2] := numeric::butcher(DOPRI78):
e := matrix([1 $ s]):
a := float(matrix(a)):
b1 := linalg::transpose(float(matrix(b1))):
b2 := linalg::transpose(float(matrix(b2))):
for i from 1 to s do
    c1[i] := (b1*a^(i-1)*e)[1, 1];
    c2[i] := (b2*a^(i-1)*e)[1, 1];
end_for:

Мы задаем полиномы устойчивости:

z := x + I*y:
p1 := 1 + _plus(c1[i]*z^i $ i = 1..s):
p2 := 1 + _plus(c2[i]*z^i $ i = 1..s):

Контур области устойчивости является кривой, заданной |p (z) | = 1. Мы строим эти неявные кривые, сопоставленные полиномами устойчивости p1(z) и p2(z) заданный выше:

plot(plot::Implicit2d(abs(p1) = 1, x = -6..1, y = 0..6,
                      Color = RGB::Red, Legend = "Order 7"),
     plot::Implicit2d(abs(p2) = 1, x = -6..1, y = 0..6,
                      Color = RGB::Blue, Legend = "Order 8"),
     Scaling = Constrained):

delete s, c, a, b1, b2, order1, order2, e, c1, c2, z, p1, p2:

Параметры

s

Количество этапов метода Гаусса: положительное целое число

digits

Количество значительных цифр, с который данные Мясника методов GAUSS(s) вычисляются. Значение по умолчанию для digits текущее значение переменной окружения DIGITS. Этот аргумент только важен для методов Гаусса.

Возвращаемые значения

Список [s, c, a, b1, b2, order1, order2] возвращен.

Ссылки

Дж.К. Бучер: числовой анализ Обыкновенных дифференциальных уравнений, Вайли, Чичестера (1987).

Э. Хэрер, С.П. Норсетт и G. Более бледный: решая Обыкновенные дифференциальные уравнения I, Спрингер, Берлин (1993).

Методы DOPRI87 и DOPRI78 соответствуйте методу RK8(7)13M опубликованный в:

P.J. Принц и J.R.Dormand: Старший разряд встроил формулы Рунге-Кутта, Журнал Вычислительной и Прикладной математики 7 (1), 1981.

Алгоритмы

Параметры Мясника, обеспеченные в этой исходной газете, состоят из рациональных приближений решений уравнений порядка систем Рунге-Кутта. Параметры обеспечиваются numeric::butcher точные рациональные решения уравнений порядка. Приближения, данные принцем и Dormand, совпадают с MuPAD® точные значения через 16 десятичных цифр.

Смотрите также

Функции MuPAD

Для просмотра документации необходимо авторизоваться на сайте