曲线拟合工具箱不接受复数函数。要执行拟合,请使用LSQNONLIN功能或FMINSEARCH功能。传递给LSQNONLIN或FMINSEARCH的目标函数应单独使用参数的真实和复杂的部分,并单独返回残留物的实际和复杂部分。
例如,创建“myfun.m”函数。
功能f = myfun(c,xdata,ydata)
错误=(c(1)+ c(2)* 1i)* xdata * 1i + xdata。^ 2 - ydata;
f = [真实(错误(:));imag(错误(:))];
请注意,XDATA和YDATA可能是复杂的,但输入和输出是真实的。
用LSQNONLIN使用它:
[x,resnorm] = lsqnonlin(@(c)myfun(c,xdata,ydata),[1 3])
使用此功能与fminsearch,添加
在“MyFunc.m”的底部,并在上面的语法中用“fminsearch”替换'lsqnonlin'。