Author |
Topic ![Next Topic Next Topic](icon_go_right.gif) |
|
antystenes_sheff
2 Posts |
Posted - 02/20/2017 : 06:14:51 AM
|
OriginPro 2017 b9.4.0.220
I want to fit my data with this function: Gprim = Ge+(g1*(w*l1)^2/(1+(w*l1)^2))+(g2*(w*l2)^2/(1+(w*l2)^2))+(g3*(w*l3)^2/(1+(w*l3)^2))+(g4*(w*l4)^2/(1+(w*l4)^2))+(g5*(w*l5)^2/(1+(w*l5)^2))+(g6*(w*l6)^2/(1+(w*l6)^2))+(g7*(w*l7)^2/(1+(w*l7)^2))
The case is that 'l' parameters should be equidistantly distributed in on logarithmic scale. I want to use constraints such as l1/l2 = l2/l3 which unfortunately leads to the error: Error in constraints - Please check syntax such as parameter names and operators.
Is there any other way to set constrains which will assure equidistant distribution of these parameters. |
|
Hideo Fujii
USA
1582 Posts |
Posted - 02/20/2017 : 12:55:19 PM
|
Hi antystenes_sheff,
> 'l' parameters should be equidistantly distributed in on logarithmic scale. > I want to use constraints such as l1/l2 = l2/l3
In Origin's Fit Function Builder(http://www.originlab.com/doc/Origin-Help/FitFunc-Builder), you can define linear constraints, but not the non-linear kinds. See: http://www.originlab.com/doc/Origin-Help/FitPara-General-Linear-Constraint . You can define new parameters, k1, k2, ... , k6 such that: k1=log(l1), k2=log(l2),... so that your constraints can be written in a linear form such as: k1-k2=k2-k3 , etc.
I hope I didn't misunderstand what is your problem.
--Hideo Fujii OriginLab
|
Edited by - Hideo Fujii on 02/20/2017 12:58:37 PM |
![Go to Top of Page Go to Top of Page](icon_go_up.gif) |
|
antystenes_sheff
2 Posts |
Posted - 02/21/2017 : 05:06:50 AM
|
I set these new parameters and defined them in the next lines of the body of function. Then after constraining them or even only some of them, the way you suggested, I am receiving such a message: Fit did not converge - reason unknown.
|
![Go to Top of Page Go to Top of Page](icon_go_up.gif) |
|
Hideo Fujii
USA
1582 Posts |
Posted - 02/21/2017 : 11:34:44 AM
|
Hi antystenes_sheff,
Divergence of fitting could happen because of various possible reasons. So, it's difficult to say exactly what happened. First reason I suspect is that your initial parameter values are not good enough to reach the convergence. Check the initial curve on the data to see how close it is to the data. Or, potentially the function may never be able to converge with given function form, or given data under the set tolerance.
Also, in your case, you can try to reduce the number of parameters such that - instead of 5 parameters(=k1, k2,..., k5), you deploy only 2 parameters, say k0 and d, and you can embed k0, k0+d, k0+2*d, k0+3*d, and k0+4*d into your formula. This may help converging.
Best,
--Hideo Fujii OriginLab |
![Go to Top of Page Go to Top of Page](icon_go_up.gif) |
|
|
Topic ![Next Topic Next Topic](icon_go_right.gif) |
|
|
|