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

```

• Prev by Date: Upgrading to v5.1?
• Next by Date: symbolic quaternionic analysis
• Previous by thread: Re: FindFit & restricting fitting parameter
• Next by thread: saving data in a new cell