gaosheng-221

上篇文章介绍了最小二乘法的理论与证明、计算过程,这里给出两个最小二乘法的计算程序代码;

Octave代码

 clear all;close all;
 % 拟合的数据集
 x = [2;6;9;13];
 y = [4;8;12;21];
 % 数据长度
 N = length(x); % 3
 %% 计算x平均值 
 m_x = sum(x)/N;
 %%
 % 计算t的平均值 
 m_t = sum(y)/N;
 %%
 % 计算t*x的平均值
 m_xt = sum(y.*x)/N;
 %%
 % 计算x平方的平均值
 m_xx = sum(x.*x)/N;
 
 %% 根据公式计算出f(x;m,c)=mx+c中m的值
 w_1 = (m_xt - m_x*m_t)/(m_xx - m_x^2);
 %% 计算出f(x;m,c)=mx+c中c的值
 w_0 = m_t - w_1*m_x;
 
 %% 在画板上绘制出数据集的点
 figure(1);hold off
 plot(x,y,\'bo\',\'markersize\',5,\'linewidth\',2)
 set(gca,\'xtick\',0:1:25) 
 
 % 画布大小为25*25
 xplot = [0 25];
 yplot = [0 25];
 xlim(xplot)
 ylim(yplot)
 hold on
 % 打印出拟合的线段
 plot(xplot,w_0+w_1*xplot,\'r\',\'linewidth\',2)
 set(gca,\'yTick\',0:1:150) 
 xlabel(\'x\');
 ylabel(\'y\');
 

运行结果

文章首发地址:Solinx
http://www.solinx.co/archives/717

分类:

技术点:

相关文章:

  • 2021-11-17
  • 2021-10-19
  • 2021-12-25
  • 2021-08-21
  • 2021-09-30
  • 2022-01-13
  • 2021-10-09
  • 2022-01-06
猜你喜欢
  • 2021-12-25
  • 2021-07-31
  • 2022-01-11
  • 2022-01-07
  • 2021-01-10
  • 2021-12-25
  • 2022-01-05
相关资源
相似解决方案