MATLAB polyfit函数不工作

MATLAB polyfit函数不工作,matlab,curve-fitting,data-fitting,Matlab,Curve Fitting,Data Fitting,由于某种原因,polyfit函数不断地为我的函数提供NaN,我根本不理解,因为当使用另一个函数时,它工作得很好。这是我的密码: lb=0; %lowerbound of data ub=10; %upperbound of data step=.001; %step-size through data a=.03; la=1482/120000; %1482 is speed of sound in water and 120kHz ep1=.1; ep2=.2; x=lb:step:u

由于某种原因,polyfit函数不断地为我的函数提供NaN,我根本不理解,因为当使用另一个函数时,它工作得很好。这是我的密码:

lb=0; %lowerbound of data 
ub=10; %upperbound of data 
step=.001; %step-size through data 
a=.03; 
la=1482/120000; %1482 is speed of sound in water and 120kHz
ep1=.1;
ep2=.2;
x=lb:step:ub;
r_sq_des=0.99; %desired value of r^2 for the fit of data without noise 
 %present 
%  G = abs(sin((a/la)*pi.*x.*(sqrt(1+(1./x).^2)-1)));
%  r=x;

i=1; 

for x=lb:step:ub 
 G(i,1)= abs(sin((a/la)*pi*x*(sqrt(1+(1/x)^2)-1)));
%  N(i,1)=2*rand()-1; 
%  Ghat(i,1)=(1+ep1*N(i,1))*G(i,1)+ep2*N(i,1); 
 r(i,1)=x; 
 i=i+1; 
end

 Q=polyfit(r,G,2); %Polynomial fit of the data G(r) w.o. noise 
 Z=polyval(Q,r); %Evaluation of the polynomial fit for the data w.o.noise 

请告知。

G(1)是nan,这导致了问题。谢谢Daniel,问题已经解决it@Daniel嘿,Daniel,快问一个问题,因为当我加上噪声时,它又发生了,所以新的方程是Ghat方程,在上面被注释掉了。另外,我的新下限是.001。有什么建议吗?这并不是说polyfit不起作用,而是在第
G(i,1)=abs(sin((a/la)*pi*x*(sqrt(1+(1/x)^2)-1)行除以零