首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Coding
V2EX  ›  编程

如何用两条曲线尽可能的框住另一条曲线

  •  
  •   hustfox · 73 天前 · 3609 次点击
    这是一个创建于 73 天前的主题,其中的信息可能已经有所发展或是发生改变。

    假设有三条曲线( A,B,C ),由一系列点构成。A、B 是框线,C 是固定不动的曲线,要求移动 A、B 两条曲线,使得能够尽可能的包含曲线 C 中的点,其中要保证 A、B 的移动需要同步,即两者间的相对距离不能改变。有什么好的办法呀?

    如图: https://i.loli.net/2019/09/30/5mSVwZG7EgNdqCK.png

    第 1 条附言  ·  64 天前
    不好意思没有描述清楚。
    1 ) A、B 曲线包含相同数目的点,A、B、C (在 A 曲线区间)的点均有相同的横坐标,如
    A: (1,a1),(2,a2),(3,a3);
    B: (1,b1),(2,b2), (3,b3);
    C: (-1,c1),(0,c2),(1,c3),(2,c4),(3,c5),(4,c6)

    2 ) A、B 只能上下平移
    10 回复  |  直到 2019-10-01 08:53:06 +08:00
        1
    dlsflh   73 天前 via Android
    A,b 不动也就是框住的图形面积固定了。然后循环找最大?
        2
    xupefei   73 天前 via iPhone
    两条曲线框不住啊,得四条
        3
    xupefei   73 天前
    想了想,如果 C 是由点构成的,那这个问题好像是 max coverage problem 的变种?
        4
    jadehare   73 天前
    穷举,AB 从 C 的最高点移动到最低点,看有多少点
        5
    ruxuan1306   73 天前 via iPhone
    令 ab 中点组成曲线 m
    设函数 L(y)=Σ[m(x)+y-c(x)]²
    找出令函数 L(y)的最小的 y 即可😜
        6
    ruxuan1306   73 天前 via iPhone
    如果 m(x)和 c(x)可导,那最值还是很好找的

    如果不可导,那就和楼上一样,给 y 定个区间,多开几个线程遍历最小喽
        7
    ruxuan1306   73 天前 via iPhone
    哎不对 L 对 y 求导时 x 是常数
    直接令 L'(y)=0
    解得 y=(Σ[c(x)-m(x)])/n
    我猜令 L 最小的 y 应该就是这个
        8
    Xs0ul   72 天前
    得讲清楚,ab 能怎么移?上下左右平移?还是也可以旋转?
        9
    aguesuka   72 天前 via Android
    假设已知所有曲线方程并可积,假设,A 为 y=f(x)+d,B 为 y=f(c)+d+e,C 为 y=g(x)。"尽可能的包含曲线 C 中的点"如果说的不是距离。 包含曲线 C 中的点 =积分 h(g(x)-f(x), d,e) 。h 函数表示如果第一个参数在(d,d+e)之间,返回 1,否则返回 0。 用阶跃函数表示方程 h,如果方程可积,那就是一个求方程最大值的问题。

    假设只知道所有的点,那么用线性函数分段拟合,可以转换为上面的问题
        10
    Hconk   72 天前 via iPhone   ♥ 1
    @ruxuan1306 你这个算法应该不对的,举特殊点的例子,设 C 曲线为单位阶跃函数(定义 x=0 时 y=1/2 ),A B 为距离小于 1 的常数函数,你求的中线 m 与 C 方差最小的距离应是 y=1/2,但这个时候 C 曲线只有 x=0 处算在 A B 之间,但是显然当曲线 m 与 0 或 1 重合时才是最优解。
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   2599 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 25ms · UTC 13:36 · PVG 21:36 · LAX 05:36 · JFK 08:36
    ♥ Do have faith in what you're doing.