The Origin Forum
Home | Profile | Register | Active Topics | Members | Search | FAQ | Send File to Tech support
 All Forums  Origin Forum for Programming  Forum for Origin C  Initialization parameter and code to estimate coef New Topic  Reply to Topic  Printer Friendly
Author  Topic

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.Itｴs 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

236 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.SamOriginLab Technical Services Edited by - Sam Fang on 03/27/2012 05:43:51 AM

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 imageif they were able to fit in the sixties, i think we can also do this.... But i dont know how! Thanks

236 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]; ```SamOriginLab Technical Services

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 ?!

Brazil
9 Posts

 Posted - 05/07/2012 :  7:13:49 PM and why T6 is 1 ?!

236 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.SamOriginLab Technical Services

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

236 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.SamOriginLab Technical Services

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.

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

236 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.SamOriginLab Technical Services
Topic
 New Topic  Reply to Topic  Printer Friendly Jump To: Select Forum Origin Forum       Origin Viewer and Orglab Forum       Origin Forum Origin Forum for Programming       LabTalk Forum       Forum for Origin C       Forum for Automation Server/COM and LabVIEW Japanese Origin Forum       Origin日本語フォーラム (Japanese Origin Forum) Origin on Linux       The Origin on Linux Forum Private Forums       Distributor Forum  -------------------- Home Active Topics Frequently Asked Questions Member Information Search Page
 The Origin Forum © 2008 Originlab Corporation