请教一个数学问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Eleflea
V2EX    问与答

请教一个数学问题

  •  
  •  Eleflea 2019-09-05 19:45:32 +08:00 via Android 2848 次点击
    这是一个创建于 2228 天前的主题,其中的信息可能已经有所发展或是发生改变。
    一个由点组成的序列(x1, y1), (x2, y2) ... (xn, yn )定义一条折线,也就是把他们按序连接起来。其中 x 和 y 取值都在 0 与 1 之间。现在有多条这样的折线,如何把它们加起来,求出和的点序列或者解析式?

    P.S. 每组序列的长度和横坐标的间隔都是不同的。
    第 1 条附言    2019-09-05 21:41:27 +08:00

    img.png

    就像上面那样,橘色和蓝色是两条折线,求出它们的和绿色的折线。

    16 条回复    2019-09-06 10:33:58 +08:00
    shylockhg
        1
    shylockhg  
       2019-09-05 20:34:49 +08:00
    什么序?
    Tony042
        2
    Tony042  
       2019-09-05 20:46:16 +08:00
    上 Python 和 Scipy 吧,不清楚要怎么拟合这条线,可以试下线性回归?
    Eleflea
        3
    Eleflea  
    OP
       2019-09-05 21:05:09 +08:00
    @shylockhg 按照横坐标从小到大的顺序。比如(0, 1), (0.1, 0.9), (0.3, 0.8) ... (0.8, 0), (1, 0) 这样的。

    @Tony042 不是要拟合,是要求出这条折线的解析式。不清楚 Scipy 里有没有相关的函数。
    rogwan
        4
    rogwan  
       2019-09-05 21:06:31 +08:00 via Android
    这个折线是一个函数,还是不可导的点阵?
    Eleflea
        5
    Eleflea  
    OP
       2019-09-05 21:17:06 +08:00
    @rogwan 折线嘛,肯定有多个不可导的点,分段光滑。
    zackwu
        6
    zackwu  
       2019-09-05 21:46:39 +08:00   1
    最直接的想法,分段求出表达式,然后相加...应该是可行的,而且写起来不太复杂
    Eleflea
        7
    Eleflea  
    OP
       2019-09-05 22:02:09 +08:00
    @keith1126 看来只有这种方法了。
    nflush
        8
    nflush  
       2019-09-05 22:16:04 +08:00 via Android
    有没有这样的线( x1,y1 ) ( x2,y2 ) ( x3,y3 ) x1<x2<x3,且 y2<y1<y3 ?
    nflush
        9
    nflush  
       2019-09-05 22:20:20 +08:00 via Android
    @nflush 说反了,我想问的是,有没有画出来像“>”或者“<”的线?
    Tony042
        10
    Tony042  
       2019-09-05 22:25:35 +08:00
    @Eleflea 不都有点了,先从大到小排个序,然后分段线性回归或者直接求分段函数就可以了吧,换句话说先找到所有连续不可导的位置,然后分段函数就行了
    Tony042
        11
    Tony042  
       2019-09-05 22:38:56 +08:00
    @Eleflea 整理下思路,首先新分段函数的所有端点一定是未求和之前某一折线的端点,对所有端点排序,从小到大,对每一个端点的左邻域和右邻域分别求导,如果导数不同即为新分段函数的端点,这样就得到了新函数的解析式
    lastmandream
        12
    lastmandream  
       2019-09-05 23:09:04 +08:00 via Android
    两点就能确定一条直线,然后就是分段函数
    qwertyegg
        13
    qwertyegg  
       2019-09-06 00:03:49 +08:00   1
    把两条线的折点坐标记录下来求一个并集

    根据这个并集插值成两个长度一样的序列

    然后简单的加起来就行了
    noqwerty
        14
    noqwerty  
       2019-09-06 03:40:05 +08:00 via Android
    我做的话可能就直接 LOESS 拟合了,不过不知道你具体需求是拿来干什么
    cheneydog
        15
    cheneydog  
       2019-09-06 09:12:16 +08:00
    x 轴的取值是一样的么?那直接把 x 相同的 y 加起来不就 ok ?
    wingkou
        16
    wingkou  
       2019-09-06 10:33:58 +08:00
    #13 说的对,最简单的做法了,应该也是最好的了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2614 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 25ms UTC 06:13 PVG 14:13 LAX 23:13 JFK 02:13
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86