MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi

Learn moreOpportunities for recent engineering grads.

Apply Today
Asked by Araz on 19 Nov 2012

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

*No products are associated with this question.*

Answer by Michael on 19 Nov 2012

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.

## 1 Comment

Direct link to this comment:http://www.mathworks.com/matlabcentral/answers/54145#comment_112064

The value of

is complex. Do you want to fit thehandreal(h)components separately, or do you want to fitimag(h)?abs(h)I also see only

fiveparameters:[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 toRandwfit? Should they be in your equation also?