gpt4 book ai didi

algorithm - 使用层的一维速度模型的数据结构和算法?

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:06:25 26 4
gpt4 key购买 nike

这是我正在创建的地球物理分析程序。我已经有了执行所有这些操作的代码,但我正在寻找灵感和想法(良好的数据结构和算法)

我要建模的内容:

  • 速度作为深度 (z) 的函数
  • 该模型由多层构建而成 (<10)
    • 每一层都可以通过索引访问,索引从最顶层的 0 到最底层的 n
  • 每一层的速度都是深度的线性函数(第k层的梯度a_k和轴截距b_k)
  • 每一层都有顶部和底部深度(z_k-1 和 z_k)
  • 模型完整,层与层之间没有空间。两层之间的点属于下层

要求:

  • 获取模型内任意深度的速度。这将在 1k 到 10k 次的数量级上完成,因此应该对其进行很好的优化。
  • 通过图层索引获取图层的顶底深度、梯度和截距

目前我所拥有的:
我有工作的 Python 代码,其中每一层都保存为一个 numpy 数组,其值为 z_k(底部深度)、z_k-1(顶部深度)、a_k(速度梯度)和 b_k(轴截距)。为了在特定深度评估模型,我获取层索引 (,使用它来获取层的参数并将它们传递给评估线速度梯度的函数。

最佳答案

因此您具有分段线性相关性,其中分段末端的 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)

关于algorithm - 使用层的一维速度模型的数据结构和算法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56787250/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com