Re: 'Changing' parameters in an expression
- To: mathgroup at smc.vnet.net
- Subject: [mg60540] Re: 'Changing' parameters in an expression
- From: Peter Pein <petsie at dordos.net>
- Date: Tue, 20 Sep 2005 05:18:54 -0400 (EDT)
- References: <dgm0sp$o21$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Matt schrieb:
> Hello,
> What follows (at the end) worked for me, however, I'm wondering if
> it's the 'right' approach or not. What I mean by 'right' is this: my
> eventual approach worked, but there may be another approach that is
> more efficient and demonstrates a more wide ranging principal in using
> Mathematica, and hence would be applicable in many situations.
>
> I started off with this:
> eqn = x'[t] == x[t](x[t] - a);
>
> (I am using eqn as the first argument to DSolve, which is why it
> appears as it does.)
>
> I wanted to plot the rhs of eqn with 'a' having a value of 1/2, so
> first I tried this:
> Plot[eqn[[2]] /. a->1/2, {t, 0, 6}];
>
> That didn't work as I got these types of errors:
> Plot::plnr : eqn[[2]] /. a -> 1/2 is not a machine-size real number at
> t = ....
>
> over and over again.
>
> I tried a few other rules with essentially the same results and then I
> tried this:
> Plot[eqn[[2]] /. {a->1/2, x[t]->x}, {x, 0, 6}];
>
> Which worked for me. I'm sure it has something to do with what I'm
> asking Plot to work with. It just seems strange to me that DSolve will
> work with eqn, but Plot does not.
>
> Thanks for any help,
>
> Matt
>
Hi Matt,
you mixed variables and functions.
In eqn, x is a function. If you want to plot x*(x-1/2) over a real
range, x is a scalar. Using the identity-function for x in eqn should work:
Plot[eqn/.{a->1/2,x->Identity},{t,0,6}], or (shorter)
Plot[eqn/.{a->1/2,x->(#&)},{t,0,6}]
does what you want.
--
Peter Pein, Berlin
GnuPG Key ID: 0xA34C5A82
http://people.freenet.de/Peter_Berlin/