本文介紹利用矩陣除法進行最小二乘直線擬合
%%%矩陣除法最小二乘直線擬合的函式檔案,參考matlab2018從入門到精通(中文版)
function [k,b]=linefit(x,y)
n=length(x);
x=reshape(x,n,1);%生成列向量
y=reshape(y,n,1);
a=[x,ones(n,1)];
bb=y;
b=a'*a;
bb=a'*bb;
yy=b\bb;
k=yy(1);
b=yy(2);
end求解案列:
x=[0.5 1 1.5 2 2.5 3];
y=[1.75 2.45 3.81 4.8 8 8.6];
[k,b]=linefit(x,y);
y1=polyval([k,b],x);
plot(x,y,'*',x,y1,'r-','linewidth',2);
xlabel('x');ylabel('y');
執行結果:
%%還可以使用polyfit命令
x=[0.5 1 1.5 2 2.5 3];
y=[1.75 2.45 3.81 4.8 8 8.6];
a1=polyfit(x,y,1);%1階多項式最小二乘擬合
y1=polyval(a1,x);
plot(x,y,'*',x,y1,'g-','linewidth',2);
執行結果:
擬合專題 直線擬合
閒來無事,整理下擬合方面的一些方法 部分內容參考gloomyfish grooveboy等部落格,在此先行謝過 直線擬合方法主流方法有最小二乘 hough兩種,其他如halcon上的最小距離也是最小二乘的思想,其他如hough變換和最小二乘結合 混沌粒子群結合等等 1 最小二乘擬合直線 曲線擬合中最...
OpenCV直線擬合
摘抄自 opencv 提供的直線擬合函式。函式原型如下 void fitline inputarray points,outputarray line,int disttype,double param,double reps,double aeps disttype 指定擬合函式的型別,可以取 c...
Opencv 擬合直線
最小二乘法是勒讓德 a.m.legendre 於1805年在其著作 計算慧星軌道的新方法 中提出的。最小二乘法就是通過最小化誤差的平方和,使得擬合物件無限接近目標物件。在影象處理中主要用於擬合線,通過求取樣點距離誤差最小的線,可以是直線,曲線,橢圓,圓等。求解方法目前分為多項式和概率 最大似然 估計...