MathGroup Archive 2006

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Why doesn't Mathematica solve this simple differential equation?

  • To: mathgroup at smc.vnet.net
  • Subject: [mg69289] Re: Why doesn't Mathematica solve this simple differential equation?
  • From: Joseph Gwinn <JoeGwinn at comcast.net>
  • Date: Tue, 5 Sep 2006 05:31:08 -0400 (EDT)
  • Organization: Gwinn Instruments
  • References: <eddqq8$3vq$1@smc.vnet.net> <edg7uj$gds$1@smc.vnet.net>
  • Sender: owner-wri-mathgroup at wolfram.com

In article <edg7uj$gds$1 at smc.vnet.net>,
 Jean-Marc Gulliet <jeanmarc.gulliet at gmail.com> wrote:

> Joseph Gwinn wrote:
> > Here is the system I'm trying to solve.  It's an electrical circuit 
> > consisting of a capacitor C1 (with initial voltage 4.0 volts), a 
> > resistor R1, and a diode in series.  
> > 
> > 
> > Approach 1:
> > 
> > eqns11 = {Q1'[t] == -Iloop[t], Q1[t] == C1*Vc[t],     Vr[t] == 
> > R1*Is*Exp[Vd[t]/0.026], Vc[t] == Vr[t] + Vd[t], Vc[0] == 4.0}
> > 
> > eqns12 = eqns11 /. {C1 -> 1.0*10^-6, R1 -> 16, Is -> 10^-13}
> > 
> > eqns12soln = NDSolve[eqns12, Q1, {t, 0, 1}]
> 
> Let's try this one:
> 
> eqns11= { Q1'[t]== - Iloop[t], Q1[t]== C1* Vc[t], Vr[t]== R1*Is* Exp[ 
> Vd[t]/0.026], Vc[t]== Vr[t]+ Vd[t], Vc[0]==4.0}
> 
> --> {Derivative[1][Q1][t] == -Iloop[t], Q1[t] == C1*Vc[t], Vr[t] == 
> E^(38.46153846153846*Vd[t])*Is*R1, Vc[t] == Vd[t] + Vr[t], Vc[0] == 4.}
> 
> eqns12= eqns11/. { C1-> 1.0* 10^ -6, R1->16, Is-> 10^ -13}
> 
> --> {Derivative[1][Q1][t] == -Iloop[t], Q1[t] == 1.*^-6*Vc[t], Vr[t] == 
> E^(38.46153846153846*Vd[t])/625000000000, Vc[t] == Vd[t] + Vr[t], Vc[0] 
> == 4.}
> 
> If I follow you correctly, you want to solve for the function Q1[t], 
> function that you have already defined as 1.*^-6*Vc[t], that is Q1[t] 
> depends on the function Vc[t], which is itself defined as the sum of 
> functions that depends on another function Vd[t] that is defined 
> nowhere. 

No, Vd is defined implicitly, in the equation "Vr[t]== R1*Is* 
Exp[Vd[t]/0.026]".  

The simplified diode equation is Id=Is*Exp[Vd/0.026].  This form can be 
inverted, but not so easily done with the full-strength Schottky 
equation, and it's best to keep the diode equation in standard form.

I wondered in Mathematica would be happy with one of the equations in 
the system being implicit.  That's why I tried approach 2.

> Moreover, the derivative of Q1[t] is also specified as being 
> equal to another undefined function Iloop[t]...
> 
> You wonder then why NDSolve complains about the input not being an ODE?
> 
> eqns12soln= NDSolve[ eqns12,Q1, { t,0,1}]
> 
> --> NDSolve::"ndode" : "Input is not an ordinary differential equation. 
> More...

It turns out that this error was due to an error in the substitutions 
just before.  When the substitution is fixed, the error message changes 
to a complaint about the system being underdetermined.

So that's where I'll dig.  Apparently, I need to include more of the 
physics.

Thanks,

Joe


  • Prev by Date: Re: Why doesn't Mathematica solve this simple differential equation?
  • Next by Date: Re: Why doesn't Mathematica solve this simple differential equation?
  • Previous by thread: Re: Why doesn't Mathematica solve this simple differential equation?
  • Next by thread: Re: Why doesn't Mathematica solve this simple differential equation?