Group Abstract Group Abstract

Message Boards Message Boards

NDSolve error: Cannot solve to find an explicit formula for the derivatives

Posted 2 years ago

In the attached notebook it is able to solve the first set of coupled differential equation without any issues. If I remove the terms that have f i.e. f=0 the error NDSolve::ntdvdae: Cannot solve to find an explicit formula for the derivatives. NDSolve will try solving the system as differential-algebraic equations. pops up. Any solutions would be appreciated.

Attachments:
POSTED BY: Anand Mathew
6 Replies

At a glance one can see that the highest order derivatives for \[Mu]1 and P1 occur only in one equation, eqn6. Further, eqn5 involves only lower order derivatives (orders 1, 0, resp) of \[Mu]1, P1. So there are only two equations involving the three highest-order derivatives, eqn4 and eqn6. Consequently NDSolve "cannot solve to find an explicit formula for the [highest-order] derivatives." A simple fix is to differentiate eqn5. We also need to remove the initial value for P1'[0], since it is determined by the equations.

a1 = 1.38*10^10;
q1 = 1.6*10^-19;
\[Epsilon]1 = 8.85*10^-12;
\[Lambda]1 = 4*10^-9;
\[Mu]hat1 = 0.8*10^-20;
f1 = 0;
\[Beta]1 = 4.63*10^-44;
\[Alpha]1 = -80*10^-16;
M1 = 70*10^6;

eqn4 = (M1 - ((\[Alpha]1^2)/\[Beta]1)) u1''[
      y] + (\[Alpha]1/\[Beta]1)*\[Mu]1'[y] == 0;
eqn5 = D[a1*P1[y] - (1/q1)*\[Mu]1'[y] == 0, y];
eqn6 = \[Mu]1''[y] + (q1/\[Epsilon]1)*
     P1'[y] - (1/\[Lambda]1^2)*\[Mu]1[
      y] + (1/\[Lambda]1^2)*\[Mu]hat1 == 0;

sol = NDSolve[{eqn4, eqn5, 
   eqn6, \[Mu]1'[0] == 0, \[Mu]1[0] == -8*10^-21, P1[0] == 10,(*P1'[
   0]==0,*)u1[0] == 10^-9, u1'[0] == 0}, {\[Mu]1, P1, u1}, {y, 0, 
   10^-9}]

\[Mu]sol1[y_] := \[Mu]1[y] /. sol[[1]]
Psol1[y_] := P1[y] /. sol[[1]]
usol1[y_] := u1[y] /. sol[[1]]
POSTED BY: Michael Rogers
Posted 2 years ago

Is it a simple typo? Should be Psol1[x] rather than Psol[x]?

Plot[{Psol1[x]}, {x, 0, 10^-9}, PlotLegends -> {"P(x)"}]
POSTED BY: Rohit Namjoshi
Posted 2 years ago

I understood that q and q1 had the same value. I was only looking for any and every tiny difference in the way the two sets of equations were written, hoping any tiny difference might uncover the problem.

Now to hopefully the more important part.

eqn4 == eqn1 as if f==0

eqn5 is eqn2 as if f==1 but not including the u''[x] term

eqn6 == eqn3

Is every bit of that correct? I really want to make certain everything is correct first.

Does the value of f really matter? Or are you just asking for solutions for two systems that might have some things in common, but whatever that might be makes no difference at all. Understanding that might help people look for what might be the source of the problem.

It isn't necessarily clear the steps that NDSolve might take transforming a system of equations on the way to a solution. Possibly leaving out some terms, by acting as if f==0 or by leaving out u''[x], might result in a system that lacks some key bits needed for that transformation to complete.

POSTED BY: Bill Nelson
Posted 2 years ago
POSTED BY: Anand Mathew
Posted 2 years ago
POSTED BY: Bill Nelson
Posted 2 years ago

It still shows the same! I was trying something thats why the typo came in. Still getting the same error.

POSTED BY: Anand Mathew
Reply to this discussion
Community posts can be styled and formatted using the Markdown syntax.
Reply Preview
Attachments
Remove
or Discard