MathGroup Archive 1997

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

Search the Archive

Re: Iterating NDSolve

Darrmis wrote:
> Can anyone help?  I set up a system of two equations after defining the
> expressions f and g.  NDSolve[{t'[v]==g, t[0]==10000,x'[v]==f,
> x[0]==0,{t,x},{v,0,20}]
> The problem is, both f and g also depend on a parameter that
> I call theta (theta actually represents a chemical concentration, this is
> a kinetics problem). I can simply vary theta in my definition of f and g
> and solve the equations several times to see how solution varies with
> theta. I did this (by rewriting the input for theta and the NDsolve
> command about 50 times to vary theta from 0 to 50). I can then evaluate
> x[v] at several values of v for each theta and make a list for each theta
> and apply the function ListPlot3D.  This is very inefficient way to graph
> x[v,theta].  Is there a simple way to do this in 3 or 4 command lines.
> I'd like in general to numerically solve ODE's and then plot results as
> function of two variables.  (Is it possible to define a function of the
> variable theta as the solution to the NDSolve command?  When I try to do
> this I get error message.).  Any help would be greatly appreciated.

A couple of thoughts:
1- have you tried a symbolic solution?  I don't know how complicated the
functions f and g are.
2-If that doesn't work, try what I call a "symbolic numeric" solution. 
This involves taking your favorite numerical differential equation
method(Eulers, Midpoint, Runga-Kutta etc.) and carrying it out a few
terms symbolically.  This should be especially easy in mathematica using
a recursion formalism.  You can test the method for accuracy to see how
many terms you actually need by checking your results with NDSolve.  One
advantage to this method is that you can use the Compile function on the
result and speed up execution.

  • Prev by Date: Re: Font-Installation ?
  • Next by Date: Re: Iterating NDSolve
  • Previous by thread: Iterating NDSolve
  • Next by thread: Re: Iterating NDSolve