MathGroup Archive 1995

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

Search the Archive

DSolveConstants problem

  • To: mathgroup at christensen.cybernetics.net
  • Subject: [mg1141] DSolveConstants problem
  • From: rich_klopp at qm.sri.com (Richard W. Klopp)
  • Date: Wed, 17 May 1995 04:19:21 -0400
  • Organization: SRI International

I am (still) having problems with DSolve. As you will see at In[8]: below,
the kernel is brought to its knees when I try to define the integration
constants to be something other than the default C[i].  I am running
version 2.2.2 on a PowerMac 7100/66 and have allocated 5 Megs to the
kernel.
In[1]:=<<Calculus`DSolve`
Define a nonlinear ODE:
In[2]:= r[z] := a z^2 + g
In[3]:= leftside1 = (r[z]^2 + e) D[u[z],{z,2}] +
   D[r[z]^2,z] D[u[z],z];
In[4]:= eq1 = (leftside1 == 0)
Out[4]=
              2                       2 2
4 a z (g + a z ) u'[z] + (e + (g + a z ) ) u''[z] == 0
Solve the ODE and time how long it takes.
In[5]:= Timing[DSolve[eq1, u[z],z]]
Out[5]=
{26.35 Second, {{u[z] -> 
 
                                       1
     C[2] + C[1] Integrate[-------------------------, z]}}
                                2          2    2  4
                           e + g  + 2 a g z  + a  z
 
   }
Let's define the same ODE with a new dependent variable.
In[6]:= leftside2 = (r[z]^2 + e) D[v[z],{z,2}] +
   D[r[z]^2,z] D[v[z],z];
In[7]:= eq2 = (leftside2 == 0)
Out[7]=
              2                       2 2
4 a z (g + a z ) v'[z] + (e + (g + a z ) ) v''[z] == 0

Solve the new ODE and time how long it takes.
***Use a different, non-default integration constant this time.***

In[8]:= Timing[DSolve[eq2, v[z],z,{DSolveConstants->b}]]

******After 15 minutes, I give up!  What's wrong here?*******
Out[8]= $Aborted

Let's do a simpler problem to make sure we've got the DSolveConstants
syntax right.
In[9]:= eq3 = ( D[w[z],{z,2}] == -2 T )
Out[9]= w''[z] == -2 T
In[10]:= DSolve[eq3,w[z],z,{DSolveConstants -> f}]
Out[10]=
               2
{{w[z] -> -(T z ) + f[1] + z f[2]}}
Looks like the syntax is correct.  Let's time it, and the default version.
In[11]:= Timing[DSolve[eq3,w[z],z,{DSolveConstants -> f}]]
Out[11]=
                                 2
{0.116667 Second, {{w[z] -> -(T z ) + f[1] + z f[2]}}}
In[12]:= Timing[DSolve[eq3,w[z],z]]
Out[12]=
                                 2
{0.266667 Second, {{w[z] -> -(T z ) + C[1] + z C[2]}}}
So, what's the problem at In[8]:?  I want to define different constants
because I want to solve several similar ODEs and keep their integration
constants separate.
Thanks for your help,
Rich Klopp
rich_klopp at qm.sri.com


  • Prev by Date: Re: Optica?
  • Next by Date: Re: CHALLENGE (still more)
  • Previous by thread: Correction: Function with attributes Flat and OneIdentity
  • Next by thread: Re: CHALLENGE (still more)