MathGroup Archive 2012

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

Search the Archive

Re: Manipulate a Plot of Evaluate DSolve


func[coef_, c_, x_] =
 y[x] /. DSolve[{y'[x] == Cos[coef*x], y[0] == c}, y[x], x][[1]] //

c + Sin[coef*x]/coef

   func[coef, c, x] /.
    c -> Range[5]],
  {x, -10, 10},
  PlotRange -> {-5, 10}],
 {{coef, 1}, 0.1, 5, 0.01,
  Appearance -> "Labeled"}]

Bob Hanlon

On Sun, Jul 29, 2012 at 3:05 AM,  <barandiaran.juan at> wrote:
> Hi,
> I'm trying to Manipulate a Plot of a quite difficult function which involves solving a differential equation, but cannot be solved analytically.
> To try to simplify the example and simulate it, let's assume that we have the following function:
> func[coef_] = {{y -> Function[{x}, DSolve[y'[x] == Cos[coef *x], y, x]]}}
> Manipulate[Plot[{{Evaluate[y[x] /. func[coef] /. C[1] -> {Range[-5, 0]}]}}, {x, -10, 10}], {{coef , 1}, 0.1, 5}]
> I get an error: DSolve::dsvar: "-9.99959 cannot be used as a variable"
> I think that this is because Manipulate assigns a value to x (= -9.99959) BEFORE solving the DSolve, even though to avoid it I'm using the Evaluate function, which should process the function before assigning a value to x.
> But the thing is that the "coef" to be Manipulated is at the same "level" as the x in the Manipulate block, so probably if I need the coef to solve the DSolve, I also have the x that gives me an error.
> Is there any workaround? I guess I'm not understanding properly how Mathematica processes these simple expressions.
> Thanks, Juan

  • Prev by Date: Re: How FFT workks? (analytical example)
  • Next by Date: Re: mac new OS "mountain lion", compile function, C compiler (vrs. 8.0.4)
  • Previous by thread: Manipulate a Plot of Evaluate DSolve
  • Next by thread: Re: Manipulate a Plot of Evaluate DSolve