Re: Plot to Plot3D problem

*To*: mathgroup at smc.vnet.net*Subject*: [mg83383] Re: Plot to Plot3D problem*From*: Peter Pein <petsie at dordos.net>*Date*: Mon, 19 Nov 2007 06:10:52 -0500 (EST)*References*: <fhp603$3bm$1@smc.vnet.net>

Hi Jerry, I guess there is a reason why you do not DSolve your equation and work with that result... I'm using Version 5.2. The Rf in the pattern sol[Rf_] is another one than the Rf used in the rest of your example. To avoid trouble, use: sol[rf_] := First@NDSolve[eqs /. Rf -> rf, vo, {t, -10, 5}] If you use Evaluate in the Plot3D function, evaluation will take place before a value for sol[..] is known. I used successfully Plot3D[(vo /. sol[10^lrf])[t], {t, -2, 5/2}, {lrf, 4, 7}, PlotRange -> All, AxesLabel -> {"t", "log10(Rf)", "vo"}, PlotPoints -> {33, 49}, Mesh -> False] (I changed the scale of Rf to logarithmic, because the linear scale seemed boring to me) HTH, Peter Jerry schrieb: > Greetings all. Could someone please give me a tip on what > I'm doing wrong when trying to convert a working Plot > routine to a Plot3D routine? > > I'm using V6.01 on XP. > > The first code set below works fine, using a fixed value for > the parameter Rf. > > In the second code set, I don't set parameter Rf and I try > to use it as one variable in Plot3D. I've tried every > combination of set or set delayed for eqs and sol and tried > inserting Evaluate all over the place and haven't hit > goodness yet. Clearly I'm not ready for prime time on my own. > > Would appreciate any suggestions. > > > > (* this works *) > a = 1.0; w = 1.57; > Rf = 1*10^6; > R = 1000; c = 2*10^-6; > > v2[t_] := Exp[-a t^2] Sin[w t]; > v3[t_] := v2'[t]; > > eqs = {vo'[t] == -(v3[t]/R/c + vo[t]/Rf/c), vo[-5] == 0}; > > sol = NDSolve[{eqs}, vo, {t, -10, 5}] > > Plot[ Evaluate[ vo[t] /. sol], {t, -5, 5} ] > > ********************** > > (* this doesn't work *) > a = 1.0; w = 1.57; > (* parameter Rf specified in Plot3D below *) > R = 1000; c = 2*10^-6; > > v2[t_] := Exp[-a t^2] Sin[w t]; > v3[t_] := v2'[t]; > > eqs = {vo'[t] == -(v3[t]/R/c + vo[t]/Rf/c), vo[-5] == 0}; > > sol[Rf_] := NDSolve[{eqs}, vo, {t, -10, 5}] > > Plot3D[ Evaluate[ vo[t] /. sol[Rf] ], {t, -5, 5}, > {Rf, 1*^6,5*^6} ] >