有人知道 JavaScript 的微积分库吗?我做了一些谷歌搜索并没有想出任何东西。我申请了 WolframAlpha API,但除非他们选择给我拨款,否则这很昂贵。
理想情况下,我可以将一个二维点数组输入一个函数,并取回导数点的图形(数组)。
如果这样的库不存在,我会创建一个来分享。
有人知道 JavaScript 的微积分库吗?我做了一些谷歌搜索并没有想出任何东西。我申请了 WolframAlpha API,但除非他们选择给我拨款,否则这很昂贵。
理想情况下,我可以将一个二维点数组输入一个函数,并取回导数点的图形(数组)。
如果这样的库不存在,我会创建一个来分享。
既然你说你有一个二维数组点,我假设你有两个变量的函数f(x, y)
。这意味着你没有单一的衍生品。相反,您会得到一组偏导数。
您可以使用有限差分公式来近似偏导数。
关于x
at的偏导数f(x, y)
是(f(x+h, y) - f(x-h, y))/2h
。
关于y
at的偏导数f(x, y)
是(f(x, y+h) - f(x, y-h))/2h
。
在这些公式中,h
是网格上节点之间的空间,假设您有一个规则间隔的网格。如果水平和垂直间距不同,则使用水平间距作为部分相对于x
和垂直间距作为部分相对于y
。
更新:我误解了你的问题。我认为二维数组是一个域值数组。如果您有x
和f(x)
值的列表,则可以近似f'(x)
为(f(x+h) - f(x-h)) / 2h
。这将适用于任何地方,除了其中一个术语超出范围的第一个和最后一个点。您可以(f(x + h) - f(x))/h
在左端和(f(x) - f(x-h))/h
右端使用。近似值在端点处会不太准确,但这是无法避免的。