How to obtain complex solutions?

I have some recorded data. I have plotted a curve of this data and I want to fit this data in the curve of the equation: T(p) = f^2 cos2(p) + f.h sin(2p) + h^2 sin2(p) + g^2 cos2(p) + g.k sin(2p) + k^2 sin2(p)
Here, the data is between T and p.
f, g, h and k are constants to be evaluated. The values of these constants are complex numbers. But I am getting only real values. Could somebody please help?

1 commentaire

Roger Wohlwend
Roger Wohlwend le 5 Juin 2014
Well, what can we do to help? Perhaps the solution is real and your expectation is wrong. Are you sure the constants shoud be complex?

Connectez-vous pour commenter.

Réponses (1)

Star Strider
Star Strider le 5 Juin 2014

0 votes

To the best of my knowledge, the solvers will only estimate real values. If you want to fit complex values, you have to be slightly deceptive.
In this situation, your complex parameters each become two parameters, a real an imaginary part. The fitting function ( nlinfit, lsqcurvefit ) sees, for instance f(1), f(2), while you would refer to them in your function as f = complex(f(1) f(2)), a single parameter.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by