Non linear curve fitting by changing parameters
1 回表示 (過去 30 日間)
古いコメントを表示
Hi
Im trying to fitt two non linear curves to each other the red curve to the blue . I have tried the basic fitting method but it doesn't give me a good match.
In the equation h=... of my code by changing some parameters which is 2.41, 0.389, 0.3, 0.406, 0.06, 0.406 i should get the red curve to be fitted on blue curve.
The equation h in my code is :
h=sqrt(1+(2.41./(1-(0.389e-6./lambda).^2))+(0.3./((1-(0.406e-6./lambda).^2)+((1i.*0.06).*(0.406e-6./lambda))))); I have changed much the parameters but the curves doesn't fit.
What can i do to fit this two curves to each other by changing only thus six parameters?
Best Regards
1 件のコメント
Star Strider
2012 年 11 月 19 日
編集済み: Star Strider
2012 年 11 月 19 日
The value of h is complex. Do you want to fit the real(h) and imag(h) components separately, or do you want to fit abs(h)?
I also see only five parameters: [2.41; 0.389E-006; 0.3; 0.406E-006; 0.06].
This post ‘fitting of two curves and 6 unknown parameters’ also seems to quote the same equation. How to R and w fit? Should they be in your equation also?
回答 (1 件)
Michael
2012 年 11 月 19 日
What is the blue curve? Usually a curve fitter algorithm requires a model (your h function) with specified parameter space (your six numbers), but also data to be fitted. Is the blue curve a set of (h,lambda) points?
In this format I'd suggest trying lsqcurvefit, you can specify your model h(lambda) in the argument, along with a starting point and your data.
参考
カテゴリ
Help Center および File Exchange で Interpolation についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!