Dsolve for two point boundary value problem
이전 댓글 표시
Can dsolve of Matlab 2019a solve the following system of differential equations (BVP):

With the following BC:

(T= 60)
I tried to insert it like this:
xlambdasol = dsolve(eqns, cond)
with eqns and cond being the above specified expressions but I get the output:
Warning: Unable to find explicit solution.
> In dsolve (line 201)
In inner_minimization_problem_mfile (line 294)
So I guess it can not. Why is that? What is the method used in dsolve?
댓글 수: 9
Hendrik Lorenz
2019년 6월 25일
You have 12 ODEs in 12 unknowns with 12 boundary conditions. This should give a unique solution. So you can't put constraints on it.
What you could try is to evaluate sqrt(x1-x2), sqrt(x2-x3) and sqrt(xi) as sqrt(abs(x1-x2)), sqrt(abs(x2-x3)) and sqrt(abs(xi)) and check whether your final solution satisfies x1 >= x2, x2 >= x3 and xi >= 0.
Bjorn Gustavsson
2019년 6월 25일
Torsten, aren't the ODEs nonlinear enough to potentially have multiple solutions?
Torsten
2019년 6월 25일
Maybe, but how to sort out complex solutions in a way different from what I suggested ?
My guess is that they have no physical meaning for the problem at hand.
Hendrik Lorenz
2019년 6월 26일
편집: Hendrik Lorenz
2019년 6월 26일
Stephan
2019년 6월 27일
Did you try using bvp5c?
Hendrik Lorenz
2019년 6월 28일
Torsten
2019년 6월 28일
If you implement a shooting method (e.g. by combining "ode45" for the forward integration and "fsolve" to adjust the missing boundary conditions at t=0), you could use the "event" facility of the ODE solvers to interrupt integration when a state-dependent discontinuity appears.
When you use "bvp4c", this is not possible since you solve the complete problem on a predefined t-mesh. The only thing you could try is using "if"-statements to handle the discontinuities.
답변 (0개)
카테고리
도움말 센터 및 File Exchange에서 Boundary Value Problems에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!