Это моя первая попытка написать что-нибудь в Matlab, поэтому, пожалуйста, наберитесь терпения.
Я пытаюсь оценить решение следующего ODE: w '' + N (w, w ') =f (t) с условиями Коши w (0) = w '(0) = 0. Здесь N - заданная нелинейная функция, f - заданный источник.Мне также нужна функция
, где G - решение следующего ODE:
, где G (0) = G '(0) = 0, s
- постоянная, а
Моя попытка заключается в следующем: я определяю N
, f
, w
и G
:
k = 1000;
N = @(g1,g2) g1^2 + sin(g2);
f = @(t) 0.5 * (1 + tanh(k * t));
t = linspace(0, 10, 100);
w = nonlinearnonhom(N, f);
G = nonlinearGreen(N);
Эта часть в порядке.Я могу построить как w
, так и G
: и то, и другое кажется правильным.Теперь я хочу оценить wG
.Для этой цели я использую прямое и обратное преобразования Лапласа следующим образом:
wG = ilaplace(laplace(G, t, s) * laplace(f, t, s), s, t);
, но говорит:
Undefined function 'laplace' for input arguments of type 'double'.
Error in main (line 13)
wG = ilaplace(laplace(G, t, s) * laplace(f, t, s), s, t);
Теперь я не уверен, является ли это определение wG
исправить вообще, и если нет других определений.
Приложение: nonlinearGreen(N)
определяется следующим образом:
function G = nonlinearGreen(N)
eps = .0001;
del = @(t)[1/(eps * pi) * exp( -t^2/eps^2)];
eqGreen = @(t, g)[g(2); - N(g(1),g(2)) + del(t)];
tspan = [0, 100];
Cc = [0, 0];
solGreen = ode45(eqGreen, tspan, Cc);
t = linspace(0, 10, 1000);
G = deval(solGreen, t, 1);
end
и nonlinearnonhom
определяется какследует:
function w = nonlinearnonhom(N, f)
eqnonhom = @(t, g)[g(2); - N(g(1),g(2)) + f(t)];
tspan = [0, 100];
Cc = [0, 0];
solnonhom = ode45(eqnonhom, tspan, Cc);
t = linspace(0, 10, 100);
w = deval(solnonhom, t, 1);
end