How can i do curve fitting in complex field?

2 views (last 30 days)
Now, I trying to make a curve fitting in complex number but, It doesn't work.
below picture is my equation. (x1~x8 is variable(variable is real value, not complex), w is frequency matrix, eq is response)
I want to fit to response result. pls, Give me a solution.

Accepted Answer

Star Strider
Star Strider on 21 Aug 2020
Edited: Star Strider on 21 Aug 2020
If the ‘x’ parameters are real and ‘w’ is real, and ‘eq’ is complex, one option would be to create your data as separate vectors of the real part and the complex part, then fit the real and complex parts of your model to the real and complex parts of your data.
It would go something like this (assuming column vectors):
Data = [real(eq(:)) imag(eq(:))];
and the model would then be:
eq_mdl = @(x,w) [real(model(x,w)) imag(model(x,w))];
The lsqcurvefit function would be able to fit this sort of problem.
  2 Comments
Jiseung Lee
Jiseung Lee on 23 Aug 2020
Thx. I'm trying to make the code.
In the meantime, I want to ask one more question.
'x6' is real value but, tanh(sqrt(1i*w*x6)/sqrt(1i*w*x6) is complex number
If I use this code('eq_mdl = @(x,w) [real(model(x,w)) imag(model(x,w))];'),
can i get the only one value of 'x6'?
(=can 'x6' satisfy the real part fitting and imag part fitting in same time?)
Star Strider
Star Strider on 23 Aug 2020
I do not understand what you are asking. The code I suggest will evaluate the model for all values of ‘x’ and all values of ‘w’ and create a matrix to compare with the ‘Data’ matrix. The optimisation function you choose will then adjust all the ‘x’ parameters to create the closest fit with the model and the data.

Sign in to comment.

More Answers (0)

Products

Community Treasure Hunt

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

Start Hunting!