Author |
Topic  |
|
skaniceuy
2 Posts |
Posted - 04/20/2016 : 10:08:18 AM
|
Hi, everyone, I tried to fit my data with user-defined non-linear function (I created via Fitting Function Organizer, I use OriginPro 2015, (32-bit) b9.2.214) My function is y = (1/((A0*exp(-(x-A1)/A2) +1))) + A3;
Function Form: Origin C Treat All numbers as double: checked Parameter settings: InitialValues = --(V) Meanings = height,center,FWHM,offset LowerBounds = 0.0(X, ON),0.0(X, ON),0.0(X, ON),0.0(X, ON) UpperBounds = --(X, OFF),--(X, OFF),--(X, OFF),--(X, OFF) NamingMethod = User-Defined NumberOfSignificantDigits = Unit =
Enable Auto Initialization: checked with Use Origin C
Parameter Initialization: A1 = peak_pos(x_y_curve, &A2, &A0, &A3);
When I use this function to fit my data, it does not do a good job, please see the snapshot below. 
Please let me know if there is any way to improve this fitting,
Thank you very much.
Gian. |
|
Hideo Fujii
USA
1582 Posts |
Posted - 04/20/2016 : 12:00:29 PM
|
Hi skaniceuy,
Since your function is sigmoidal, I suppose your original data is the scatter plot in the upper panel. Then, though I couldn't read out the Y scale of the upper plot, your function's asymptote goes from A3 at bottom to A3+1 at ceiling - no way to control the amplitude. Maybe you can consider to change the parameter A0 to make it control it such as?:y = A0*(1/((exp(-(x-A1)/A2) +1))) + A3; In my experiment, it converged okay.
Hope this helps.
--Hideo Fujii OriginLab
|
Edited by - Hideo Fujii on 04/20/2016 12:01:02 PM |
 |
|
skaniceuy
2 Posts |
Posted - 04/20/2016 : 4:14:01 PM
|
quote: Originally posted by Hideo Fujii
Hi skaniceuy,
Since your function is sigmoidal, I suppose your original data is the scatter plot in the upper panel. Then, though I couldn't read out the Y scale of the upper plot, your function's asymptote goes from A3 at bottom to A3+1 at ceiling - no way to control the amplitude. Maybe you can consider to change the parameter A0 to make it control it such as?:y = A0*(1/((exp(-(x-A1)/A2) +1))) + A3; In my experiment, it converged okay.
Hope this helps.
--Hideo Fujii OriginLab
Hi, Hideo
Thank you very much for your help!!!! It works ok with the revised equation you suggested!!!
I really appreciate your help!!!
Thanks
Gian. |
 |
|
Hideo Fujii
USA
1582 Posts |
Posted - 04/21/2016 : 10:26:41 AM
|
Hi Gian,
No problem. By the way, your function is around the same to Origin's built-in Boltzmann function, and you should be able to get your own parameters by defining the derived parameters. http://www.originlab.com/doc/Origin-Help/Define-DerivPara
The advantage is not only doing the work easier, but also you can take advantage of the built-in function's parameter initialization routine and others.
Good luck.
--Hideo Fujii OriginLab |
 |
|
|
Topic  |
|
|
|