我的输入是1D函数y = f(x)
,我想找到一种方法,用一条在给定区间<x1, x2>
上有少量点的多段线来近似这个函数:
我解决这个问题的方法是用多个点(1000+)生成多段线,然后用Ramer–Douglas–Peucker algorithm抽取多段线。你知道吗
所以在(伪)python中是这样的:
def fn_to_low_poly(f, x1, x2):
xs = numpy.linspace(x1, x2, 1000)
ys = f(xs)
return ramer_douglas_peucker_decimate(xs, ys, epsilon=0.001)
这是可行的,但它太复杂和缓慢,我很肯定有一个更好的方法。你知道吗
我现在用python/numpy/scipy来做这个,但是我可能需要用C或者Rust或者别的什么来重写它,所以我不太关心用python来解决这个问题的具体方法,我宁愿有一个通用的算法,尽管我会感谢任何帮助。你知道吗
有没有一种算法可以直接将一维函数(float -> float
)简化为点个数较少的多段线?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐