Пример поиска начального приближения
На этой странице мы делаем include примера, который находится в корне пакета в каталоге "examples/".
Literate.jl включает текст этих примеров и в md файл.
Пример №1
Первый и последний пример, показывающий как использовать функцию.
Работа алгоритма при разных параметрах $\varepsilon$ и доли заполнения кадра (доли точек, которые прошел переходный слой) будет рассмотрена более подробно в секции численных экспериментов.
using NonLinearReactionAdvectionDiffusionWithFrontData
using Dierckx
using LinearAlgebra;
using Plots; gr();
nothing #hideВходные параметры определим полностью, чтобы Вам было проще их быстро изменить, и быстро посмотреть на результат.
u_l(t) = -8;
u_r(t) = 4;
qf(x) = 4*sin(3 * π * x); # Коэффициент линейного усиления,
ε = 0.03; # Малый параметр при старшей производной
a, b = 0, 1; # Область по X
t₀, T = 0, 0.42; # Область по T
N, M = 200, 300; # Кол-во разбиений по X, T
h = (b-a)/N; # шаг по X
τ = (T-t₀)/M; # шаг по T
Xₙ = [a + n*h for n in 0:N]; # Сетка по Х
Tₘ = [t₀ + m*τ for m in 0:M]; # Сетка по Т
qₙ = qf.(Xₙ); # Сеточные значения коэффициента лин. усиления
ulₘ= u_l.(Tₘ); # Сеточные значения левого ГУ
urₘ= u_r.(Tₘ); # Сеточные значения правого ГУ
u₀ = u_init.(Xₙ, ε=ε, x_tp = 0.1); # Начальные условияu, XX, TP = solve(u₀, Xₙ, N, Tₘ, M, ε, ulₘ, urₘ, qₙ);
ϕl, ϕr, ϕ, f1_data, f2_data = generate_obs_data(u, Xₙ, N, Tₘ, M, qₙ, ulₘ, urₘ);
nothing # hide
q_guess = initial_guess(f1_data, Xₙ, N, Tₘ, M, ulₘ, urₘ, 0.005);
!!! note
Работает, только с постоянными ГУ!Визуализация
Набросаем эскиз решения прямой задачи
psol = plot(title="Эскиз решения");
plot!(Xₙ, u[:, 1], label="u(x, 0)");
plot!(Xₙ, u[:, div(end,2)], label="u(x, T/2)");
plot!(Xₙ, u[:, end], label="u(x, T)");
psolНайденное начальное приближение.
Начальное приближение не может быть определено в точках сетки $X_N$, которые не пересек переходный слой, поэтому там, начальное приближение продолжено константой.
plot(Xₙ, qₙ, label="Истинное")
plot!(Xₙ, q_guess, label="Начальное приближение")This page was generated using Literate.jl.