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

Torsten
Torsten 2021년 5월 28일
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 2021년 5월 28일
편집: Torsten 2021년 5월 28일
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 2021년 5월 29일
편집: Torsten 2021년 5월 29일
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
Hi, look at your ODE function: y'' = exp(x)/x^2, if x=0, will cause the error of 0/0 .

댓글을 달려면 로그인하십시오.

 채택된 답변

Jan
Jan 2021년 5월 28일
편집: Jan 2021년 5월 28일

0 개 추천

댓글 수: 6

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

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

질문:

2021년 5월 27일

편집:

2021년 6월 19일

Community Treasure Hunt

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

Start Hunting!

Translated by