Re: FindFit & restricting fitting parameter
- To: mathgroup at smc.vnet.net
- Subject: [mg55470] Re: FindFit & restricting fitting parameter
- From: Peter Pein <petsie at arcor.de>
- Date: Fri, 25 Mar 2005 05:48:12 -0500 (EST)
- References: <d1turt$riv$1@smc.vnet.net>
- Sender: owner-wri-mathgroup at wolfram.com
Laurent Feuz wrote: > Hi > > If I want to fit some data using: > > output = FindFit[data, > Izero*(1 + 1/(xiPEG^2*q^2)), {{Izero, 0.12}, {xiPEG, 10}}, q] > > I can assign a starting value to my parameters (like 0.12 for Izero in > the above case), but can I also restrict its value to a certain range > (like 0.10<Izero<0.14)? > > Thanks for any hints! > regards > Laurent > Hi Laurent, you can find the parameters using NMinimize: data = Table[{q, (Random[]/4)*(1 + 1/(q^2*(9 + 2*Random[])^2))}, {q, -3/4, 5/4, 1/2}]; FindFit[data, Izero*(1 + 1/(xiPEG^2*q^2)), {{Izero, 0.12}, {xiPEG, 10}}, q] ==> {Izero -> 0.151709971352094, xiPEG -> 16.557105919797674} NMinimize[{ Plus @@ ((Izero*(1 + 1/(xiPEG^2*#1[[1]]^2)) - #1[[2]])^2 & ) /@ data, 0.1 <= Izero <= 0.14}, {Izero, xiPEG}][[2]] ==> {Izero -> 0.14, xiPEG -> 10.107064766466742} -- Peter Pein Berlin