• 请不要在回答技术问题时复制粘贴 AI 生成的内容
nealot
V2EX  ›  程序员

请教一个数值积分问题

  •  
  •   nealot · Jun 8, 2020 · 1451 views
    This topic created in 2165 days ago, the information mentioned may be changed or developed.

    有两个实数空间函数

    dz/dx = f(x, y) dy/dx = g(x, y)

    假设每次函数计算都能在 O(1) 下高效完成

    初始状态 x = 0,此时 y = 0,z = 0 我们要计算 x = x' 时的 z 值


    这个问题看起来是一个典型的数值积分问题,我们取一个比较小的 dx 值 (比如 0.001),然后一小段一小段计算,计算每一小段的 dy 和 dz

    其中 dy 会造成点在 XOY 平面上偏移,dz 则用来累加起来计算最后的 z


    但是这看起来不是很高效,而且可能还会有累计误差 (不知道会有多大的误差)

    假定我们可能要处理三种类型的曲面 f(x,y) 和 g(x,y)

    1. 值连续且导数也连续的光滑曲面 (类似正态分布曲线)
    2. 值连续,但是导数不连续的曲面 (很多三角形拼成的山坡)
    3. 值不连续,导数也不连续的曲面 (阶梯式平面)

    请教下是否能有个什么方法能够既快速又准确地积分计算出 z 值呢?

    1 replies    2020-06-09 02:59:01 +08:00
    Tony042
        1
    Tony042  
       Jun 9, 2020
    ode 和简单的 pde 直接上 matlab 吧,自己写 solver 难度比较大
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   3260 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 13:35 · PVG 21:35 · LAX 06:35 · JFK 09:35
    ♥ Do have faith in what you're doing.