思考: 从曲线中提取出近似直线的一段

针对如何从拟合曲线中找出看似直线的部分,本文提出了一个思路:通过判断曲线中相邻点Y值差的相似性,在允许误差范围内尽可能多地连接点形成直线。使用最小二乘法求得直线方程。测试结果显示,当允许Y差值在0.020至0.025之间时,结果较为准确。但算法存在潜在问题,若点依次递增,可能导致整体形成抛物线而非直线。文章提供数据下载并邀请读者交流改进方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        这个问题也是别人问我的, 我思考了一些时间, 希望抛砖引玉, 得到更好的方法.

        问题是这样的: 有一些离散的点, 在坐标系中把它们拟合成一条曲线, 其中有一段看上去很像是直线, 现在要求出这段"直线"的起始坐标和结束坐标, 并把这条线的方程求出来. 如下图:

2011082300583973.jpg

        从图中可以用肉眼看出标注的那一段近似一条直线, 问题是如果通过程序求出来.

我的想法

        我的想法是这样的, 假设这条线是存在的, 那么这条线里的点, 它们相邻两两之间Y之差应该是"相似"的, 具体相似要什么程度, 需要有一个"允许误差值". 在这个允许误差值下, 尽可能多的把这条曲线上连续的点拉拢到一条直线上, 最后根据这些点用最小二乘法就可以求得直线方程了.

获取这些连续的点:

static List<Poi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值