lincsu
2010-05-17, 02:27
coeff是所求的未知系数,一共三个参数
xdata=【0:0.001:3】。。。。1x3001
ydata=不规则的数据,请见附件,长度1x3001
是一个公式求出来的数值
附件是matlab中.mat文件,下载后可以改成.mat后缀
求解的曲线是:
F=coeff(3)^2./((coeff(2)-xdata.^2).^2+(coeff(1)*xdata).^2);
非常感谢,我使用了:
coeff0 = [5; 8; 0.00001]; % Starting guess
[coeff,resnorm] = lsqcurvefit(@myfun,coeff0,xdata,ydata)
function F = myfun(coeff,xdata)
F=coeff(3)^2./((coeff(2)-xdata.^2).^2+(coeff(1)*xdata).^2);
但是一直出错:
??? Error using ==> optim\private\snls at 304
lsqcurvefit cannot continue: user function is returning Inf or NaN values.
Error in ==> optim\private\lsqncommon at 221
[x,FVAL,LAMBDA,JACOB,EXITFLAG,OUTPUT,msg]=...
Error in ==> lsqcurvefit at 182
[x,Resnorm,FVAL,EXITFLAG,OUTPUT,LAMBDA,JACOB] = ...
Error in ==> white_noise_to_color at 25
[coeff,resnorm] = lsqcurvefit(@myfun,coeff0,omega,S_FF)
xdata=【0:0.001:3】。。。。1x3001
ydata=不规则的数据,请见附件,长度1x3001
是一个公式求出来的数值
附件是matlab中.mat文件,下载后可以改成.mat后缀
求解的曲线是:
F=coeff(3)^2./((coeff(2)-xdata.^2).^2+(coeff(1)*xdata).^2);
非常感谢,我使用了:
coeff0 = [5; 8; 0.00001]; % Starting guess
[coeff,resnorm] = lsqcurvefit(@myfun,coeff0,xdata,ydata)
function F = myfun(coeff,xdata)
F=coeff(3)^2./((coeff(2)-xdata.^2).^2+(coeff(1)*xdata).^2);
但是一直出错:
??? Error using ==> optim\private\snls at 304
lsqcurvefit cannot continue: user function is returning Inf or NaN values.
Error in ==> optim\private\lsqncommon at 221
[x,FVAL,LAMBDA,JACOB,EXITFLAG,OUTPUT,msg]=...
Error in ==> lsqcurvefit at 182
[x,Resnorm,FVAL,EXITFLAG,OUTPUT,LAMBDA,JACOB] = ...
Error in ==> white_noise_to_color at 25
[coeff,resnorm] = lsqcurvefit(@myfun,coeff0,omega,S_FF)