直线拟合算法
发布时间: 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
所以就是这样的。既然楼主说近似,绝对没错咯!呵呵
热点内容