Re: Can FindFit handle two dependent variables?
- To: mathgroup at smc.vnet.net
- Subject: [mg72252] Re: Can FindFit handle two dependent variables?
- From: "Valeri Astanoff" <astanoff at gmail.com>
- Date: Sat, 16 Dec 2006 05:18:18 -0500 (EST)
- References: <elu3tt$gk$1@smc.vnet.net>
On 15 déc, 13:20, "lsha" <l... at earthlink.net> wrote: > Hi, > > I have a set of two dimensional data in the form {{x1,y1},{x2,y2}...}. > The data is mapped from another set of 2-D data in the form {{u1,v1},{u2,v2}...}. > I know FindFit can work with 2-D data but only with one depedent variable in the form {x,y,f[x,y]}. > Is there a way to use FindFit to solve the mapping from {u,v} to {x,y} simultaniously? > > Thanks, > lsha Hi, Here is a toy example of what you can do : In[1]:= xy = {{2,1},{3,2},{4,3},{5,4},{6,5},{3,2},{4,4},{5,6},{6,8},{7,8}}; In[2]:= uv = {{1,1},{1,2},{1,3},{1,4},{1,5},{2,1},{2,2},{2,3},{2,4},{2,4}}; In[3]:= data1 = Thread[fun[uv,xy]] /. fun -> ({Sequence@@#1,#2[[1]]}&); In[4]:= data2 = Thread[fun[uv,xy]] /. fun -> ({Sequence@@#1,#2[[2]]}&); In[5]:= parm1 = FindFit[data1, f1 = a*u+b*v,{a,b},{u,v}] Out[5]= {a -> 1.04438, b -> 1.02071} In[6]:= parm2 = FindFit[data2, f2 = c*u*v+d,{c,d},{u,v}] Out[6]= {c -> 1., d -> 2.5278*^-15} In[7]:= f[u_,v_] = {f1,f2} /. parm1 /. parm2 Out[7]= {1.04438*u + 1.020718*v, 2.5278*^-15 + 1.*u*v} hth V.Astanoff