最小二乘法程序(C语言,matlab都可以)

问题描述:

最小二乘法程序(C语言,matlab都可以)
要求是先随机产生n个点(n≥10),然后再用最小二乘法算出直线的值
1个回答 分类:综合 2014-11-17

问题解答:

我来补答
t=20;%t为随机数个数x=1:t;y=rand(1,t);%随即产生t个随机数,范围是0到1,你也可以都乘以某个常数n=1;%直线拟合n就取1,p=polyfit(x,y,n);       %计算n次多项式系数pxi=linspace(0,t,100);%linspace用于产生x1,x2之间的N点行矢量yi=polyval(p,xi);            %计算多项式的值plot(x,y,'.',xi,yi);xlabel('x'),ylabel('f(x)')title('最小二乘法拟合')p%p即为拟合后的直线的一次项系数和常数项 ——————————————————————————————————————注意:随机产生的点,因为数据方差比较大,拟合成的直线对于某个点来说相差较大.比如我测试的p=0.0053    0.4909,那么,拟合直线就是y=0.0053x+0.4909.
 
 
展开全文阅读
剩余:2000
下一页:先解十一题