如果你懂英語,就用matlab最強大的函式help(一般人我不告訴他)
help nlinfit
help lsqcurvefit
如果不懂英語,繼續看
進行非線性迴歸時可使用nlinfit指令,其語法如下:
beta = nlinfit(X,y,fun,beta0)
[beta,r,J] = nlinfit(X,y,fun,beta0)
[...] = nlinfit(X, y, fun, beta0, options)
[x,resnorm]= lsqcurvefit(fun,x0,xdata,ydata);
引數解釋:
input:fun——程式設計者需要擬合的函式
x0——函式係數的初始猜測值
xdata——x座標的值
ydata——y左邊的值
output:x——經擬合的係數
resnorm——the value of the squared 2-norm of the residual at x: sum((fun(x,xdata)-ydata).^2).
example:
function fitfunc
xdata=[3.5 7.7 9.3 4.5 8.6 2.8 1.3 7.9 10.1 5.4]; %定義自變數
ydata=[16.5 149.6 263.1 24.6 208.5 9.9 2.7 162.9 322.0 52.3]; %定義因變數
x0=[7,7,7]; %初始估計值
[x,renorm]=lsqcurvefit(@myfun,x0,xdata,ydata); %確定待定係數
disp(x);
disp(renorm);
function F=myfun(x,xdata)
F=x(1)*(xdata.^2)+x(2)*sin(xdata)+x(3)*(xdata.^3); %預定義函式關係式
如果你懂英語,就用matlab最強大的函式help(一般人我不告訴他)
help nlinfit
help lsqcurvefit
如果不懂英語,繼續看
進行非線性迴歸時可使用nlinfit指令,其語法如下:
beta = nlinfit(X,y,fun,beta0)
[beta,r,J] = nlinfit(X,y,fun,beta0)
[...] = nlinfit(X, y, fun, beta0, options)
[x,resnorm]= lsqcurvefit(fun,x0,xdata,ydata);
引數解釋:
input:fun——程式設計者需要擬合的函式
x0——函式係數的初始猜測值
xdata——x座標的值
ydata——y左邊的值
output:x——經擬合的係數
resnorm——the value of the squared 2-norm of the residual at x: sum((fun(x,xdata)-ydata).^2).
example:
function fitfunc
xdata=[3.5 7.7 9.3 4.5 8.6 2.8 1.3 7.9 10.1 5.4]; %定義自變數
ydata=[16.5 149.6 263.1 24.6 208.5 9.9 2.7 162.9 322.0 52.3]; %定義因變數
x0=[7,7,7]; %初始估計值
[x,renorm]=lsqcurvefit(@myfun,x0,xdata,ydata); %確定待定係數
disp(x);
disp(renorm);
function F=myfun(x,xdata)
F=x(1)*(xdata.^2)+x(2)*sin(xdata)+x(3)*(xdata.^3); %預定義函式關係式