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

要求是先随机产生n个点(n≥10),然后再用最小二乘法算出直线的值... 要求是先随机产生n个点(n≥10),然后再用最小二乘法算出直线的值 展开
 我来答
网络世界
2012-04-12 · 网络热点,科普知识
网络世界
采纳数:174 获赞数:1328

向TA提问 私信TA
展开全部

t=20;%t为随机数个数

x=1:t;

y=rand(1,t);%随即产生t个随机数,范围是0到1,你也可以都乘以某个常数

n=1;%直线拟合n就取1,

p=polyfit(x,y,n);       %计算n次多项式系数p

xi=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。

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式