Search All of the Math Forum:

Views expressed in these public forums are not endorsed by NCTM or The Math Forum.

Notice: We are no longer accepting new posts, but the forums will continue to be readable.

Topic: system of differential equations mathematica help
Replies: 2   Last Post: Jan 10, 2013 2:19 AM

 Messages: [ Previous | Next ]
 Oliver Ruebenkoenig Posts: 237 Registered: 6/28/08
Re: system of differential equations mathematica help
Posted: Jan 8, 2013 11:39 PM

On Mon, 7 Jan 2013, 01af wrote:

> Before anyone starts to type: I have read the top post on a similar matter, but the reply makes no sense to me so if anyone can give my issue a read through I would be grateful. Thanks.
>
> ok I am modelling airflow in the upper airway for application i obstructive sleep apnoea, but I have hit a brick wall with mathematica. I have a system of 3 differential equations with boundary conditions, and I need to solve to find 3 unknown functions numerically so that they may be plotted in various graphs.
>
> The equations are as follows:
>
> D[a[x]*u[x], x] == 0,
> u[x] u'[x] == -p'[x],
> p[x] - 1 == 2 (1 - ((a[x])^(-3/2))) - 50 (a''[x]).
>
> with boundary conditions:
>
> u[0] == 0.1, a[0] == 1, a[10] == 1, p[10] == 1.
>
> so initially I tried to use NDSolve like so..
>
> Code:
>
> NDSolve[{D[a[x]*u[x], x] == 0, u[x] u'[x] == -p'[x],
> p[x] - 1 == 2 (1 - ((a[x])^(-3/2))) - 50 (a''[x]), u[0] == 0.1,
> a[0] == 1, a[10] == 1, p[10] == 1}, {a}, {x, 0, 10}]
>
> but mathematica does this:
>
> Code:
>
> Power::infy: "Infinite expression 1/0.^(3/2) encountered. "
> Infinity::indet: Indeterminate expression 0. ComplexInfinity encountered. >>
> Infinity::indet: Indeterminate expression 0. ComplexInfinity encountered. >>
> General::stop: Further output of Infinity::indet will be suppressed during this calculation. >>
> NDSolve::ndnum: Encountered non-numerical value for a derivative at x == 0.`. >>
>
> which is super annoying, any pointers as to where I'm going wrong would be great. I'm not even sure if I should be using NDSolve so let me know what you think.
> a.
>
>

Hi 01af,

to be quite honest I did not see what the issue was and had to resort
asking colleagues myself. What you can do is:

NDSolve[{D[a[x]*u[x], x] == 0, u[x] u'[x] == -p'[x],
p[x] - 1 == 2 (1 - ((a[x])^(-3/2))) - 50 (a''[x]), u[0] == 0.1,
a[0] == 1, a[10] == 1, p[10] == 1}, {a}, {x, 0, 10},
Method -> {"BoundaryValues" -> {"Shooting",
"StartingInitialConditions" -> {a[0] == 1, a'[0] == 0, p[0] == 0,
u[0] == .1}}}]

The issue is that the default starting conditions produce singularities -
so I filed this as a suggestion for future improvement that in such a case
other starting conditions are attempted.

Hope this helps,

Oliver

Date Subject Author
1/8/13 Oliver Ruebenkoenig
1/10/13 Alexei Boulbitch