Boundary Value Problem with non boundary values

For solving a Boundary Value Problem with non boundary values (for instance a second order differential defined at [0,1] with values at x=0.2 and x=1) is there a way only using bvp4c except from solving at [0.2,1] and afterwards using bvpxtend for predicting solution's behaviour ?
General suggestions are also welcomed !

6 comentarios

Torsten
Torsten el 28 de Mayo de 2021
Your problem description is unclear.
Ode equation is x^2 *y''(x) = exp(x) defined in [0,1] with Dirichlet boundary values y(0.2) = -1 and y(1) = +2
Torsten
Torsten el 28 de Mayo de 2021
Editada: Torsten el 28 de Mayo de 2021
Solve your equation on [0,1] by taking the boundary value at x=1 and assuming a boundary value at x=0. Evaluate this solution at x=0.2. Usually, this value won't be the same as the prescribed condition at x=0.2. Use fzero to adjust the boundary condition at x=0 such that both values become the same.
By the way:
Your problem has an analytical solution
y(x)=(x-1)*Ei(x)+6.44286*x-exp(x)-1.72458
where Ei(x) is the exponential integral.
So this example is much suited to test the method I suggested above.
Torsten
Torsten el 29 de Mayo de 2021
Editada: Torsten el 29 de Mayo de 2021
This is a possible implementation (untested !)
The nonlinear equation solver "fzero" tries to find y'(1) such that the solution of the ODE passes through the point (0.2,-1).
function main
y0dot0 = -1.0;
y0dot = fzero(@fun,y0dot0);
tstart = 1.0;
tend = 1e-8;
tspan = [tstart tend];
y0 = [2 y0dot];
[T,Y] = ode15s(@ode,tspan,y0);
plot(T,Y(:,1))
end
function s = fun(y0dot)
tstart = 1.0;
tend = 0.2;
tspan = [tstart tend];
y0 = [2 y0dot];
[T,Y] = ode15s(@ode,tspan,y0);
s = Y(end,1) + 1;
end
function dy = ode(t,y)
dy = [y(2);exp(x)/x^2];
end
Alex Sha
Alex Sha el 19 de Jun. de 2021
Hi, look at your ODE function: y'' = exp(x)/x^2, if x=0, will cause the error of 0/0 .

Iniciar sesión para comentar.

 Respuesta aceptada

Jan
Jan el 28 de Mayo de 2021
Editada: Jan el 28 de Mayo de 2021

6 comentarios

Torsten
Torsten el 28 de Mayo de 2021
But no boundary condition is given at x=0 ...
Jan
Jan el 28 de Mayo de 2021
@Torsten: A good point. I prefer single and multiple-shooting approachs, for which it does not matter, where the conditions appear.
@Jan such as ?
Jan
Jan el 29 de Mayo de 2021
@Charalampos Papargyriou: I do not understand the question.
Charalampos Papargyriou
Charalampos Papargyriou el 29 de Mayo de 2021
Editada: Charalampos Papargyriou el 29 de Mayo de 2021
@Jan I am talking about the other "single and multiple-shooting approaches" you prefer .
Do you have any examples of such methods ?

Iniciar sesión para comentar.

Más respuestas (0)

Preguntada:

el 27 de Mayo de 2021

Editada:

el 19 de Jun. de 2021

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by