當前位置:編程學習大全網 - 編程軟體 - 怎麽利用MATLAB擬合這個函數中的待定常數c0 c1 c2 c3,要程序和結果

怎麽利用MATLAB擬合這個函數中的待定常數c0 c1 c2 c3,要程序和結果

呵呵,這個問題不需要用非線性擬合nlinfit的,用多元線性擬合即可。

令:

x1=1.2.^x; x2=1.07.^x; x3=1.1.^x;

則,y = c1 * x1 + c2 * x2 + c3 * x3;

按照最小二乘法,有:

x=[0 1 2 3 4 5]

y=[87.89 87.12 81.07 80.61 81.26 74.84]

x1=1.2.^x; x2=1.07.^x; x3=1.1.^x;

A=[sum(x1.^2), sum(x1.*x2), sum(x1.*x3)

sum(x1.*x2), sum(x2.^2), sum(x2.*x3)

sum(x1.*x3), sum(x2.*x3), sum(x3.^2) ];

b=[sum(y.*x1); sum(y.*x2); sum(y.*x3)];

cc=inv(A'*A)*A'*b;

最終的cc 就是 [c1,c2,c3]

多元壹次擬合比非線性擬合函數更加穩定直觀。

這個問題考的不是MATLAB的知識,而是看妳對最小二乘法的理解。

  • 上一篇:磨床為什麽做成數控磨床?
  • 下一篇:如何用javascript編程取輸入漢字的首字母,如“中華人民***和國”成"zhrmghg"
  • copyright 2024編程學習大全網