直線擬合演算法
發布時間: 2024-02-27 05:36:48
Ⅰ matlab ransac 怎麼用
1.假設我們要將n個數據點X={x1,x1,...,xn}擬合為一個由至少m個點決定的模型(m<=n,對於直線,m=2)。(我這里實際是兩個不同均值、協方差高斯分布產生的數據)
2.設迭代計數k=1。
3.從X中隨機選取m個項並擬合一個模型。(我這里直線擬合,選了2個項)
4.給定偏差ε,計算X中相對於模型的殘差在偏差ε的個數,如果元素個數大於一個閾值t,根據一致點集重新擬合模型(可以利用最小二乘或其變種),演算法終止。(我這里的偏差為1,閾值為數據個數的2/3)
5.設k=k+1,如果k小於一個事先給定的K,跳至第3步,否則採用具有迄今最大的一致點集模型,或演算法失敗。
運行效果如下,紅圈是所有的數據,藍叉是符合擬合模型的數據。
Ⅱ 給出一組數字,求公式演算法
從A的x到B的x,方程是y=1.3625x-127.8
我用matlab描點畫圖得到一條幾乎筆直的線
然後進行1次擬合,代碼如下
x=[400,440,480,520,560];
y=[416,473,526,582,634];
plot(x,y,'o')
a=polyfit(x,y,1)
a
擬合結果:
a = 1.3625 -127.8000
所以就是這樣的。既然樓主說近似,絕對沒錯咯!呵呵
熱點內容