回覆列表
  • 1 # 使用者2458114238191884

    如果你懂英語,就用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); %預定義函式關係式

  • 中秋節和大豐收的關聯?
  • 金毛骨質疏鬆還關節不好怎麼辦?