[scilab-Users] lsqrsolve
Gary Nelson
gnelson at quantasonics.com
Tue May 18 00:57:41 CEST 2010
Suppose I have a dataset that has N maxima and I want to fit a gaussian to each one, and minimize the least square error between the sum of N gaussians and the dataset.
I have tried this manually by tinkering the parameters and it clearly can be done to good effect.
The datasets have 250 to 500 samples -- a smooth sequence of positive numbers with maxima that are plausibly gaussian shaped
Initial guess could be a set of amplitudes whose time locations are taken from central difference positive to negative transits. I found that manual tweaking by moving centers a fraction of a sample left or right would change lsqerror, then tweaking amplitudes, then tweaking sigmas -- a couple interations and the visible fit would be very good.
Now, how do I do this more rigorously?
Thanks
On May 4, 2010, at 7:57 PM, ray joseph wrote:
> Gary,
>
> I am sorry that I am bypassing your original request; but if you calculate
> the mean and standard deviation of your data set, you will get the two
> parameters. Using the solver will be a fun exercise.
>
> Ray
>
> ----- Original Message -----
> From: "Gary Nelson" <gnelson at quantasonics.com>
> To: <users at lists.scilab.org>
> Sent: Tuesday, May 04, 2010 2:12 PM
> Subject: Re: [scilab-Users] lsqrsolve
>
>
> I would like to fit a gaussian to some data samples using least squares.
> The gaussian has two parameters -- amplitude and width (sigma).
>
> I would like to use 6 to 12 samples that span a maximum and provide a first
> guess of the amplitude and width.
>
> After reading the manual on lsqsolve, it seems like it will do the job, but
> I would appreciate some guidance to make it work.
>
> Thanks
>
> Gary Nelson
>
>
> On Apr 7, 2010, at 2:12 AM, Samuel Gougeon wrote:
>
>> ----- Message d'origine -----
>> De : Maso Ricci
>> Date : 31/03/2010 12:18:
>>> Hi,
>>>
>>> I am using the lsqrsolve function to fit some data.
>>> I wonder whether lsqrsolve accepts contrains in order to force the
> solution to be positive.
>>>
>>> thanks in advance for any comments and suggestions
>> Did you check the leastsq() function based on the optim() one ? Its 'b',
> binf, bsup
>> sequence of 3 input arguments allow to specify some boundaries.
>> So, for instance, if the solution you are searching for is a scalar that
> must be positive,
>> just set 'b',0,%inf. see help leastsq()
>>
>> HTH
>> Samuel
>>
>>
>
> Gary Nelson
> gnelson at quantasonics.com
>
>
>
>
>
Gary Nelson
gnelson at quantasonics.com
More information about the users
mailing list