lsqcurvefit

11 次查看(过去 30 天)
Matthew
Matthew 2011-3-3
Would LSQCURVEFIT work with comparing two complex functions? It looks like the metric for success is min sum {(FUN(X,XDATA)-YDATA).^2}, where it should be min sum {abs(FUN(X,XDATA)-YDATA).^2)} for complex-valued functions, or maybe sum {(FUN(X,XDATA)-YDATA).conj((FUN(X,XDATA)-YDATA))} Thanks Matt

采纳的回答

Andrew Newell
Andrew Newell 2011-3-3
Since the distance between two complex numbers a+i*b and c+i*d is (a-c)^2 + (b-d)^2, you could treat each complex number as a pair of independent real numbers. Wrap fun in a function rfun that returns the real and complex parts of the output. For example, assuming rfun returns a column vector,
function y = rfun(x)
y = rfun(x);
y = [real(y); imag(y)];
end
Similarly, you could replace ydata by
rdata = [real(ydata); imag(ydata)].
Then you have the first two inputs for lsqcurvefit.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Nonlinear Optimization 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by