       Re: newbie: explicit function works, "function object" doesn't

• To: mathgroup at smc.vnet.net
• Subject: [mg96231] Re: newbie: explicit function works, "function object" doesn't
• From: dh <dh at metrohm.com>
• Date: Tue, 10 Feb 2009 05:47:47 -0500 (EST)
• References: <gmp0st\$c30\$1@smc.vnet.net>

Hi Tom,

define a function with all your parameters and use it inside Manipulate:

linearPendulum = {theta''[t] == -omega^2 theta[t]};

soln = DSolve[{linearPendulum, theta' == v0, theta == theta0},

theta[t], t];

fun[t_, omega_, theta0_, v0_] = theta[t] /. soln[];

Manipulate[(Plot[

fun[t, omega, theta0, v0], {t, -2 Pi, 2 Pi}]), {{omega, 1}, 0,

5}, {{theta0, 1}, 0, 5}, {{v0, 1}, 0, 5}]

hope this helps, Daniel

Tom Roche wrote:

> summary: I've got a function that I can Manipulate, but I can't

> Manipulate the things to which the function is assigned. I'm assuming

> this is due to a syntax error.

>

> details:

>

> As advertised by the Subject:, I'm new to Mathematica (specifically M7

> running on a linux cluster) so please excuse any lapses in

> terminology. I'd also appreciate pointers to specific docs rather than

> just an RTFM. Also feel free to refer to my notebook @

>

> http://www.unc.edu/~tr/classes/GEOL861/hw1Notebook.nb

>

> I'm trying initially to model a linearized pendulum

>

> theta''[t] == -omega^2 theta[t]

>

> (where omega=g/l) with the simple initial conditions

>

> theta'==v0

> theta==theta0

>

> Using

>

> soln = DSolve[{linearPendulum, theta' == v0, theta == theta0},

> theta[t], t]

>

> I get the solution

>

> theta[t] -> (omega*theta0*Cos(omega*t) + (v0*Sin(omega*t)))/omega

>

> However, when I try to Manipulate[Plot[soln...]], I get ... nothing.

> Not an error, and I do get the appropriate UI, but I don't get a plot.

>

>>From what I've read, it seems Manipulate wants an expression like the

> RHS of 'soln', which I'll refer to here as a "function." (Please

> correct my usage as needed.) I got a "function object" with ReplaceAll

>

> happysoln[t_] = theta[t] /. soln[]

>

> similar to a working example I've seen. But

> Manipulate[Plot[happysoln...]] also fails silently, like the previous.

>

> However, when I manipulate the "function" directly

>

> Manipulate[Plot[(omega theta0 Cos[omega t] + v0 Sin[omega t])/omega,

> {t, -2 Pi, 2 Pi}], {{omega, 1}, 0, 5}, {{theta0, 1}, 0, 5}, {{v0, 1},

> 0, 5}]

>

> it works as designed: I get the UI with the plot, which I can twiddle

> with the sliders.

>

> Why can I Manipulate the function, but not the containers of the

> function (i.e. soln, happysoln)? More importantly, with what syntax

> can I Manipulate those containers?

>

> TIA, Tom Roche <Tom_Roche at pobox.com>

>

• Prev by Date: Re: testing if a point is inside a polygon
• Next by Date: Re: Problem importing HTML with Mathematica
• Previous by thread: Re: newbie: explicit function works, "function object" doesn't
• Next by thread: Re: newbie: explicit function works, "function object" doesn't