[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