寻找特定的数值积分算法

Looking for a particular algorithm for numerical integration

考虑以下微分方程
f(x) = g'(x)
我有一个构建代码,它为变量 x 输出函数 f(x) 的值,其中 x0very large.

现在,我正在寻找一种方案来分析 f(x) 的这些值以确定 g(x)。有人有什么建议吗?主要问题是,如果我计算 g(x) = Integral (f(x) * dx),那么我最终只会得到一个数字(即图形下方的面积),但我需要知道 g(x) 的实际功能。

我在这里交叉发布了这个问题:https://math.stackexchange.com/questions/1326854/looking-for-a-particular-algorithm-for-numerical-integration

  1. 数值积分总是return只是一个数字

    • 如果您不想要数字而是使用函数
    • 那么你不能使用数值积分来完成这个任务直接
  2. 多项式方法

    • 您可以使用任何 approximation/interpolation 技术来获得表示 f(x)
    • 的多项式
    • 然后积分为标准多项式(只需改变指数和乘法常数)
    • 这不适用于超越函数、周期函数或复形函数
    • 最常见的方法是使用 L'Grange 或泰勒级数
    • 对于两者,您需要一个解析器能够 returning 任何给定 x
    • f(x)
  3. 代数积分

    • 这对任何f(x)都无法解决,因为我们不知道如何整合一切
    • 因此您需要编写所有集成规则
    • 喜欢单方、替换、Z 或 L'Place 变换
    • 并在 string/symbol 范式
    • 中编写求解器
    • 那是巨大的工作量
    • 可能有库或 dll 可以做到这一点
    • 来自 Derive 或 Matlab 等程序...

[edit1] 因为函数 f(x) 只是形式

中的 table
  • double f[][2]={ x1,f(x1),x2,f(x2),...xn,f(xn) };
  • 您可以在间隔 <0,x>
  • g(x)=Integral(f(x)) 创建相同的 table
  • 所以:

    g(x1)=f(x1)*(x1-0)
    g(x2)=f(x1)*(x1-0)+f(x2)*(x2-x1)
    g(x3)=f(x1)*(x1-0)+f(x2)*(x2-x1)+f(x3)*(x3-x2)
    ...
    
  • 这只是一个 table 所以如果你想要实际的功能,你需要通过 L'Grange 或任何其他插值将其转换为多项式...

  • 你也可以使用 DFFT 和作为正弦波集的函数