Author |
Topic  |
|
egonnelli
Brazil
9 Posts |
Posted - 03/26/2012 : 10:39:16 AM
|
Hello,
I am trying to create an initialization code to estimate my initialization fitting parameters.
the equation that I am using is:
y = (T2^2+Lc^2*(2*pi*x)^2)/(T6^2+T8*(2*pi*x)^2+(2*pi*x)^4*Lc^2);
where the coefficients are Lc, T2, T6 and T8.
Its a rational function, where i have a ratio between a second degree with a fourth degree.
Do i necessarily need a initialization code to make this fit?
Thanks
|
|
Sam Fang
293 Posts |
Posted - 03/27/2012 : 05:43:04 AM
|
I think over-parameterization exists in your fitting function. If you are sure that T2 is not zero, your function can be simplified with three parameters as follows:
y=(1+a*x^2)/(b+c*x^2+a*(2*pi)^2*x^4)
where a=(2*pi*Lc/T2)^2 b=(T6/T2)^2 c=T8*(2*pi/T2)^2 and a,b>0
It is not easy to provide an initialization code for this function.
Sam OriginLab Technical Services |
Edited by - Sam Fang on 03/27/2012 05:43:51 AM |
 |
|
egonnelli
Brazil
9 Posts |
Posted - 04/04/2012 : 12:28:02 PM
|
Hi,
thank you for help me.
I am reading some articles where the author can fit his data with this kind of function. But the article is from 60s, and the only reference is "private communication" with two mathematicians about "Weighted Non-Linear Least-Square Program". So i think that there is a way to make this kind of fit. In the appendix there is the function, that is:
y = A + B * ( (2*pi*x)^2 + Alfa4^2 ) * ( (2*pi*x)^2 + Alfa5^2) / ( (2*pi*x)^2 + Alfa1^2 ) * ( (2*pi*x)^2 + Alfa2^2 )*( (2*pi*x)^2 + Alfa3^2);
or see the image

if they were able to fit in the sixties, i think we can also do this.... But i dont know how!
Thanks |
 |
|
Sam Fang
293 Posts |
Posted - 04/06/2012 : 03:22:34 AM
|
You can try the following method.
1. Simplify the fitting function.
y = (a + b*x^2)/(1 + c*x^2 + 4*pi^2*b*x^4);
Derived Parameters:
T6=1
T2=sqrt(a)
Lc=sqrt(b)/(2*pi)
T8=c/(4*pi^2)
Parameter Bounds:
a>=0
b>=0
2. Parameter Initialization.
sort( x_y_curve );
double coeff[11];
if (!fitpoly( x_y_curve, 10, coeff))
{
nErr = -1;
return;
}
a = coeff[0];
c=(-coeff[4]-4*pi^2*coeff[0]*coeff[2])/(coeff[2]+4*pi^2*coeff[0]^2);
b = coeff[2] + c * coeff[0];
Sam OriginLab Technical Services |
 |
|
egonnelli
Brazil
9 Posts |
Posted - 05/07/2012 : 6:21:54 PM
|
Do I need necessery to fix any parameters, or I vary all of them ?! |
 |
|
egonnelli
Brazil
9 Posts |
Posted - 05/07/2012 : 7:13:49 PM
|
and why T6 is 1 ?! |
 |
|
Sam Fang
293 Posts |
Posted - 05/15/2012 : 01:34:56 AM
|
T6 is fixed because over-parameterization exists in your fitting function. i.e. Parameters multiplied by the same constant are also solutions.
If T6 is fixed, the solution is unique.
Sam OriginLab Technical Services |
 |
|
egonnelli
Brazil
9 Posts |
Posted - 05/22/2012 : 11:28:07 AM
|
Ok, I understood that I need to fix T6 because over-parameterization exists in my problem.
But when I try to Fit my experimental results I want to derive T6 too. And if it is always equal to 1, I can not solve my problem.
I put another equation above, with alphas 1 to 5. Is it possible to make a code for the inicialization?!
Thank you very much !!!
Eduardo |
 |
|
Sam Fang
293 Posts |
Posted - 05/24/2012 : 06:53:01 AM
|
If you don't want to fix T6, you can also apply a constraint for parameters, which can also make parameters unique.
For another equation above, you can simplify the equation:
y=(a+b*x^2+c*x^4+d*x^6)/(1+e*x^2+f*x^4+g*x^6)
where
A=d/g
B=(2*pi)^2*(c-A*f)/g
a4 and a5 are roots of a quadratic equation for parameters. a1, a2, a3 are roots of a cubic equation.
So you'd better use the simplified form, which can determine initial parameters easily.
Sam OriginLab Technical Services |
 |
|
egonnelli
Brazil
9 Posts |
Posted - 06/25/2012 : 10:53:27 AM
|
Then what will be the types of constraints for this problem ?
I tried to fit my experimental data, but Alfa 4 and Alfa 5 tend to the same value.
I get the equation with the Alphas and I simulated the parameters, and with the values of X and Y I ploted the graph. Than I tried to fit to obtain the parameters again. But this method did not work.
I realy need create an initialization code to estimate my initialization fitting parameters.
|
 |
|
egonnelli
Brazil
9 Posts |
Posted - 06/25/2012 : 11:13:44 AM
|
In the case of the equation of alphas I know the expressions of Alpha 1, Alpha 2 and Alpha3. It already help me to get an idea of the magnitude of the values of these parameters for a initialization. But I could not calculate the values of Alpha 4 and Alpha 5.
I know the values of the alphas are the roots of equations. But when I apply the same procedure as applied in Alpha 1, 2 and 3 for Alpha 4 and Alpha 5 can not obtain them.
Do you have any idea how to do this from the equation (01) and obtain the equation (02)?
Thank you,
Eduardo
 |
 |
|
Sam Fang
293 Posts |
Posted - 06/28/2012 : 04:20:49 AM
|
Parameters are unique in your second equation. So you needn't apply constraints on your 2nd equation's parameters.
You can click Send File to Tech support button on the top right of the forum, and send your fitting data and fitting function to us. We can try it.
Thanks.
Sam OriginLab Technical Services |
 |
|
|
Topic  |
|