Re: Equivalent functions generate different plots
- To: mathgroup at smc.vnet.net
- Subject: [mg26185] Re: [mg26112] Equivalent functions generate different plots
- From: Tomas Garza <tgarza01 at prodigy.net.mx>
- Date: Thu, 30 Nov 2000 01:04:24 -0500 (EST)
- Sender: owner-wri-mathgroup at wolfram.com
Hola German, There is no lack of consistency. You see, if you copy the output of Fit[] as the definiton of f[t_] you are using an explicit function of t. However, if you define g[t_] as in your In[4] you obtain an error message: In[1]:= g[t_] = Fit[data, {1, t, t^2}, t] Set::"write": "Tag Plus in (79.68214285714285`+<< 20>> t -16.741071428571246` t^2)[t_] is Protected." Out[1]= 79.68214285714285` + 0.21249999999984936`t - 16.741071428571246`t^2 the reason being that g itself is already a function of t, and it is as if you were writing g[t][t_]. If instead you take In[2]:= g = Fit[data, {1, t, t^2}, t] Out[2]= 79.68214285714285`+ 0.21249999999984936` t - 16.741071428571246` t^2 you can plot both g and f[t]: In[3]:= Plot[{f[t], g}, {t, 0, 2.2}] and you mustn't write explicitly the argument of g. It is already there. Now, if you wanted to know the value of the fitted function g for a given value of t, say t = a, then you can use In[4]:= g /. t -> a Out[4]= 79.68214285714285`+ 0.21249999999984936` a - 16.741071428571246`a^2 and then you could define, e.g. In[5]:= h[x_] := g /. t -> x so that you may now plot h[x] with its argument explicitly written: In[6]:= Plot[h[x], {x, 0, 2.2}] A bit tricky, though, but it would have been helpful if you had looked at the FullForm of Fit[] from the very beginning.. Tomas Garza Mexico City "GERMAN" <gerbual at col2.telecom.com.co> wrote: > With: > > In[1]:= > data = {{0, 79.6}, {0.2, 79.2}, {0.4, 77.1}, {0.6, 73.7}, {0.8, 69.1}, > {1., 63.2}}; > > I can to get its cuadratic regression function: > > In[2]:= > Fit[data, {1, t, t^2}, t] > > Out[2]= > 79.68214285714285` + 0.21249999999984936` t - 16.741071428571246` t^2 > > Then, I can define the regression function in two different, but > equivalent ways: > > First: copying and pasting the last output: > > In[3]:= > f[t_] := > 79.68214285714285`+ 0.21249999999984936` t - 16.741071428571246 t^2 > > Second: using directly the *Fit* function in the right hand: > > In[4]:= > g[t_] := Fit[data, {1, t, t^2}, t] > > In this conditions: > > In[5]:= > f[t] == g[t] > > Out[5]= > True > > However: > > In[6]:= > Plot[{f[t], g[t]}, {t, 0, 2.2}] > > Out[6]= > > (GRAPHICS ...!!!) > > genere two different plots (a straight line and a curve). The curve is > well, but the straight line not. I DON'T UNDERSTAND. Can somebody > explain to me this inconsistency?