这是针对我正在创建的地球物理分析程序。我已经拥有执行所有这些操作的代码,但是我正在寻找灵感和想法(良好的数据结构和算法)。
我要建模的东西:
要求:
到目前为止我所拥有的:
我有工作的Python代码,其中每个层都保存为numpy数组,其值分别为z_k(底部深度),z_k-1(顶部深度),a_k(速度梯度)和b_k(轴截距)。为了在特定深度评估模型,我获得了层索引(,使用该索引获取层的参数,并将其传递给评估线速度梯度的函数。
答案 0 :(得分:1)
因此,您具有分段线性相关性,其中块的z坐标末端不规则,并希望在给定的z处获得函数值。
请注意,对10个片段使用二进制搜索是没有意义的(3-4轮BS可能比9个简单比较慢)。
但是您的深度查询精度是多少?请注意,您还可以存储1米分辨率和1毫米分辨率的表格-只有10 ^ 7个条目可提供O(1)访问任何预先计算的速度值
对于有限数量的零件,可以制作长公式(涉及整数除法),但结果可能会更慢。
带有边界点2和4.5的任意三段式折线的示例:
f = f0 + 0.2*int(z/2.0)*(z-2.0) + 0.03*int(z/4.5)*(z-4.5)