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 Kommentare

Torsten
Torsten am 28 Mai 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 am 28 Mai 2021
Bearbeitet: Torsten am 28 Mai 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 am 29 Mai 2021
Bearbeitet: Torsten am 29 Mai 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 am 19 Jun. 2021
Hi, look at your ODE function: y'' = exp(x)/x^2, if x=0, will cause the error of 0/0 .

Melden Sie sich an, um zu kommentieren.

 Akzeptierte Antwort

Jan
Jan am 28 Mai 2021
Bearbeitet: Jan am 28 Mai 2021

0 Stimmen

6 Kommentare

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

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Community Treasure Hunt

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

Start Hunting!

Translated by