Модель Lorenz 96 - Lorenz 96 model
В Модель Lorenz 96 это динамическая система сформулировано Эдвард Лоренц в 1996 г.[1] Это определяется следующим образом. За :
где предполагается, что и и . Здесь состояние системы и - постоянная принуждения. известное значение, вызывающее хаотическое поведение.
Это обычно используется как модельная задача в ассимиляция данных.[2]
Моделирование Python
из mpl_toolkits.mplot3d импорт Axes3Dиз scipy.integrate импорт odeintимпорт matplotlib.pyplot в качестве pltимпорт тупой в качестве нп# Это наши константыN = 5 # Количество переменныхF = 8 # Форсированиеdef L96(Икс, т): "" "Модель Lorenz 96 с постоянным форсированием" "" # Настройка вектора d = нп.нули(N) # Зацикливается на индексах (с операциями и обработкой крайних случаев индексации потери значимости Python) за я в классифицировать(N): d[я] = (Икс[(я + 1) % N] - Икс[я - 2]) * Икс[я - 1] - Икс[я] + F возвращаться dx0 = F * нп.те(N) # Исходное состояние (равновесие)x0[0] += 0.01 # Добавьте небольшое возмущение к первой переменнойт = нп.оранжевая(0.0, 30.0, 0.01)Икс = odeint(L96, x0, т)# Постройте первые три переменныеРис = plt.фигура()топор = Рис.gca(проекция="3д")топор.участок(Икс[:, 0], Икс[:, 1], Икс[:, 2])топор.set_xlabel("$ x_1 $")топор.set_ylabel("$ x_2 $")топор.set_zlabel("$ x_3 $")plt.Показать()
Юля моделирование
с помощью DynamicalSystems, PyPlotPyPlot.using3D()# параметры и начальные условияN = 5F = 8.0u = F * те(N)u[1] += 0.01 # небольшое возмущение# Модель Lorenz-96 предопределена в DynamicalSystems.jl:ds = Системы.lorenz96(N; F = F)# Точно так же, чтобы явно определить быструю версию, выполните:структура Лоренц96{N} конец # Структура для типа размерафункция (объект::Лоренц96{N})(dx, Икс, п, т) куда {N} F = п[1] # 3 крайних случая явно (производительность) @inbounds dx[1] = (Икс[2] - Икс[N - 1]) * Икс[N] - Икс[1] + F @inbounds dx[2] = (Икс[3] - Икс[N]) * Икс[1] - Икс[2] + F @inbounds dx[N] = (Икс[1] - Икс[N - 2]) * Икс[N - 1] - Икс[N] + F # тогда общий случай за п в 3:(N - 1) @inbounds dx[п] = (Икс[п + 1] - Икс[п - 2]) * Икс[п - 1] - Икс[п] + F конец возвращаться ничегоконецlor96 = Лоренц96{N}() # создать структуруds = НепрерывнаяДинамическаяСистема(lor96, u, [F])# А теперь развиваем траекториюdt = 0.01 # время выборкиTf = 30.0 # последний разtr = траектория(ds, Tf; dt = dt)# И сюжет в 3D:Икс, у, z = столбцы(tr)plot3D(Икс, у, z)
Рекомендации
- ^ Лоренц, Эдвард (1996). «Предсказуемость - проблема частично решена» (PDF). Семинар по предсказуемости, Vol. Я, ЕЦСПП.
- ^ Отт, Эдвард; и другие. "Локальный ансамблевой фильтр Калмана для ассимиляции атмосферных данных". arXiv:физика / 0203058.