matlab和C语言实现最小二乘法

参考:https://blog.csdn.net/zengxiantao1994/article/details/70210662

Matlab代码:

N = 8; x = [1 2 3 4 5 6 7 8 ]; y = [67 84 102 120 137 155 172 190]; subplot(2,1,1); plot(x,y,\'*\'); % 图形的一些设置 xlabel(\'时间(秒)\'); ylabel(\'位移(米)\'); title(\'原始数据离散点\') grid on subplot(2,1,2); p = polyfit(x,y,1); %得出P就是线性拟合的系数 % 0:0.01:9 x1 = 0:1:N; %起始为0,终点为N,步长1 y1 = polyval(p,x1); plot(x,y,\'*\',x1,y1,\'r\') xlabel(\'时间(秒)\'); ylabel(\'位移(米)\'); title(\'红线为最小二乘法拟合\') grid on sumxyji =sum(x.*y); %向量内积 sumx = sum(x); sumy = sum(y); sumxx = sum(x.*x); k = (N*sumxyji - sumx*sumy)/(N*sumxx-sumx*sumx) b = (sumy-k*sumx)/N

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zwffxs.html