Re: scattering data with MPFITFUN [message #85016 is a reply to message #84987] |
Sat, 22 June 2013 14:37   |
Nafiseh Masoumzadeh
Messages: 10 Registered: June 2013
|
Junior Member |
|
|
On Thursday, June 20, 2013 9:00:33 PM UTC+2, Craig Markwardt wrote:
> On Thursday, June 20, 2013 4:23:27 AM UTC-4, Nafiseh Masoumzadeh wrote:
>
>> On Thursday, June 20, 2013 5:51:16 AM UTC+2, Craig Markwardt wrote:
>
>>> On Wednesday, June 19, 2013 6:49:43 PM UTC-4, Nafiseh Masoumzadeh wrote:
>
>>>
>
>>>> Hello,
>
>>>>
>
>>>> I have some data which I simply want to fit p[0]*x^P[1] on them, But
>
>>>> I don't know I am receiving very far results!
>
>>>> I am using mpfitfun like this:
>
>>>> start=[0.001, 0.1]
>
>>>> results=MPFITFUN('MYFUNCTION', x, y, err, start)
>
>>>>
>
>>>> I applied this function and points in MATLAB (fitting toolbox) , and I had reasonable coefficients .
>
>>> MPFITFUN can solve problems like this.
>
>>>
>
>>> What happens when you say,
>
>>> YMODEL = MYFUNCTION(X, START)
>
>>> Do you get sensible values for YMODEL?
>
>>> You should also be checking the STATUS and ERRMSG keywords to see if there is a more informative error message.
>
>>
>
>> yes, I got reasonable result from YMODEL. and for STATUS I got 6 and I don't have any ERRMSG. I checked in MPFIT script that 6 for STATUS means
>
>>
>
>> FTOL is too small. no further reduction in
>
>> ; the sum of squares is possible.
>
>>
>
>> but I cannot figure out what is the problem?
>
>
>
> STATUS=6 is not necessarily a good or bad thing. It usually means that a best fit was achieved.
>
>
>
> So let's assume the results of the IDL fit are RESULTS_IDL and the results from your Matlab fit are RESULTS_MATLAB. You can then compute the chi-square value for each.
>
>
>
> CHI_START = TOTAL( (MYFUNCTION(X, START) - Y)^2 / ERROR^2 )
>
>
>
> CHI_IDL = TOTAL( (MYFUNCTION(X, RESULTS_IDL) - Y)^2 / ERROR^2 )
>
>
>
> CHI_MATLAB = TOTAL( (MYFUNCTION(X, RESULTS_MATLAB) - Y)^2 / ERROR^2 )
>
>
>
> How different are these three values?
>
>
>
> Craig
Hello,
sorry for delay,
I don't know how to calculate error for each case, but here is the results for
(sum(residuals))^2 or TOTAL( (MYFUNCTION(X, START) - Y)^2 .
start
16.4292
IDl
106.596
Matlab
2.39294
I really don't know why for IDL is far from what should be. I think here I cannot attached any figures since in figure it is clear that how much the result from IDL is different from my data points!
I'd appreciate your help,
best regards,
Nafiseh
|
|
|