基于基线最小二乘法的路径拟合

AI助手已提取文章相关产品:

曲线拟合基于基线最小二乘法的树莓派小车路径

摘要

曲线拟合在工程设计、计算机图形学等领域有广泛应用。在某些情况下,传统最小二乘法无法充分使用已知条件,因此我们引入了一个称为基线的概念。我们首先估计一条基线,并将点到直线距离作为概率密度的参数,用作最小二乘法的权重值。我们开发的软件表明,该方法所需的运行时间更短,且能获得更好的拟合结果。

1. 引言

在某些情况下,我们想要用一些散点拟合若干条直线。采用了总体最小二乘法(TLS)、加权总体最小二乘法(WTLS)[1,2,3]、稳健加权总体最小二乘法(RWTLS)这些方法来进行直线拟合。然而,在某些特殊情况下,我们有更好的选择来拟合这些直线。如果我们有一条基线,就可以使用一些简单的权重值,按照不同的权重对点集进行划分。基线的选择取决于具体情况。在大多数情况下,我们可能不会将基线作为最终结果。

有一些类似的方法,如分段最小二乘法、多重自适应最小二乘法和移动最小二乘法。[4,5,6]但由于引入了基线的概念,我们的软件需要更少的运行时间,并且能够获得更好的拟合结果。点到直线距离是算子的参数,我们选择不同的概率密度作为权重值。

本文结构如下。在第2节中,我们将测试线性最小二乘法中使用各种权重以获得最佳拟合直线。在第3节中,我们讨论实验结果。探索汽车行驶路线的主要因素 该研究的应用范围看似狭窄,将在第4节中进行讨论。

2. 方法

最小二乘法要求残差平方和最小,这比绝对值之和更优。观测表明,这些点分布在一条直线两侧附近。因此可以确定数学模型:

$$
y = ax + b
$$

根据最小二乘法,我们需要进行

$$
\sum_{i=1}^{n}(y_i - (ax_i + b))^2
$$

得到它的最小值。这意味着我们应该使

$$
\frac{\partial}{\partial a}\sum_{i=1}^{n}(y_i - (ax_i + b))^2 = 0,\quad \frac{\partial}{\partial b}\sum_{i=1}^{n}(y_i - (ax_i + b))^2 = 0
$$

有三种常见的概率分布适用于线性最小二乘法的条件。自变量X选择为测量点到基准线的距离。基准线来自建筑物内部的实际地图。

第一种是均匀分布。在这种情况下,权重可以表示为:

$$
w_i = 1
$$

在这种情况下,权重可以省略。

第二种是指数分布。这种情况下的权重可以写成:

$$
w_i = e^{-\lambda d_i}
$$

第三种是正态分布。它的权重如下:

$$
w_i = e^{-\frac{d_i^2}{2\sigma^2}}
$$

将(4)代入(2),得到以下方程:

$$
\sum_{i=1}^{n} w_i (y_i - (ax_i + b)) x_i = 0,\quad \sum_{i=1}^{n} w_i (y_i - (ax_i + b)) = 0
$$

在上述方程中,$a_1$ 和 $b_1$ 表示基线的参数。$a$ 和 $b$ 表示数学模型的参数。

将(5)代入(2),得到以下方程:

$$
\sum_{i=1}^{n} w_i (y_i - (ax_i + b)) x_i = 0,\quad \sum_{i=1}^{n} w_i (y_i - (ax_i + b)) = 0
$$

这里我们使用标准正态分布,即 $\sigma= 1$, $\mu= 0$。

然后我们使用二范数计算公式的精度。

2.1 数据集详细信息

我们演示如何利用预先测量的数据集来使用该公式。控制一辆树莓派小车在平坦道路上直线行驶十秒。每经过十秒,在结束时通过Wi-Fi获取位置坐标。[7]将位置转换为二维坐标系中的一个点。

基线由实际地图转换而来。由于在现实世界中无法避免测量误差,并且距离基线越近的点具有更高的概率权重,因此我们采用基线最小二乘法来获得小车的实际路线。在本实验中,使用最后30%的数据集来测试该方法的精度。

2.2 工作流程

整体工作流程如图1所示。首先,系统需要一些前置Python包,包括numpy版本1.12.1、pandas版本0.19.2、Pillow版本4.1.0。这些Python包在许多系统中已预安装,但如果未安装,用户可使用“pip”手动安装,例如: pip install numpy

示意图0

3. 结果

测量汽车在x坐标处的y坐标,如下表1。

表1. 汽车行驶坐标

测量点 x / m y / m
1 4.1 10.8
2 10.0 15.25
3 15.1 21.8
4 21.0 25.35
5 25.0 30.9
6 30.1 35.1
7 35.0 40.7
8 40.1 45.25
9 45.0 50.3
10 50.0 55.6
11 55.1 60.45
12 60.1 65.05
13 65.0 70.2
14 70.2 75.3
15 75.1 80.5
16 80.0 85.4
17 85.1 90.3
18 90.0 95.25
19 95.0 100.8
20 100.0 105.45

基线的表达式为 $ y = x $,也就是说,$ a_1 = b_1 = 1 $。将测量值代入公式6,得到指数分布的图像。将测量值代入公式7,得到正态分布的图像。

示意图1

示意图2

经过五组测试后,我们得到了公式的精度平均值。

方法 精度 (m) 运行时间 (s)
LS 0.56 1.0
PLS 0.21 3.2
我们的方法_指数 0.22 1.3
我们的方法_普通 0.19 1.4

该系统的代码可在 https://github.com/vsfh/WeighedLeastQuare 获取

4. 结论

采用一种易于使用的方法来获取多个点的合适直线。该方法的精度优于其他最小二乘算法。它不仅可以用于地图绘制,还可应用于某些特殊情况。通过测量基线与估计线之间的误差,可以推导出车辆轮胎的磨损情况。该方法也可应用于风洞实验。当然,这些应用需要更多的实验研究和假设验证。

您可能感兴趣的与本文相关内容

基于遗传算法的新的异构分布式系统任务调度算法研究(Matlab代码实现)内容概要:本文档围绕基于遗传算法的异构分布式系统任务调度算法展开研究,重点介绍了一种结合遗传算法的新颖优化方法,并通过Matlab代码实现验证其在复杂调度问题中的有效性。文中还涵盖了多种智能优化算法在生产调度、经济调度、车间调度、无人机路径规划、微电网优化等领域的应用案例,展示了从理论建模到仿真实现的完整流程。此外,文档系统梳理了智能优化、机器学习、路径规划、电力系统管理等多个科研方向的技术体系与实际应用场景,强调“借力”工具与创新思维在科研中的重要性。; 适合人群:具备一定Matlab编程基础,从事智能优化、自动化、电力系统、控制工程等相关领域研究的研究生及科研人员,尤其适合正在开展调度优化路径规划或算法改进类课题的研究者; 使用场景及目标:①学习遗传算法及其他智能优化算法(如粒子群、蜣螂优化、NSGA等)在任务调度中的设计与实现;②掌握Matlab/Simulink在科研仿真中的综合应用;③获取多领域(如微电网、无人机、车间调度)的算法复现与创新思路; 阅读建议:建议按目录顺序系统浏览,重点关注算法原理与代码实现的对应关系,结合提供的网盘资源下载完整代码进行调试与复现,同时注重从已有案例中提炼可迁移的科研方法与创新路径
【微电网】【创新点】基于非支配排序的蜣螂优化算法NSDBO求解微电网多目标优化调度研究(Matlab代码实现)内容概要:本文提出了一种基于非支配排序的蜣螂优化算法(NSDBO),用于求解微电网多目标优化调度问题。该方法结合非支配排序机制,提升了传统蜣螂优化算法在处理多目标问题时的收敛性和分布性,有效解决了微电网调度中经济成本、碳排放、能源利用率等多个相互冲突目标的优化难题。研究构建了包含风、光、储能等多种分布式能源的微电网模型,并通过Matlab代码实现算法仿真,验证了NSDBO在寻找帕累托最优解集方面的优越性能,相较于其他多目标优化算法表现出更强的搜索能力和稳定性。; 适合人群:具备一定电力系统或优化算法基础,从事新能源、微电网、智能优化等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于微电网能量管理系统的多目标优化调度设计;②作为新型智能优化算法的研究与改进基础,用于解决复杂的多目标工程优化问题;③帮助理解非支配排序机制在进化算法中的集成方法及其在实际系统中的仿真实现。; 阅读建议:建议读者结合Matlab代码深入理解算法实现细节,重点关注非支配排序、拥挤度计算和蜣螂行为模拟的结合方式,并可通过替换目标函数或系统参数进行扩展实验,以掌握算法的适应性与调参技巧。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值