有没有人知道JavaScript的微积分库?我做了一些谷歌搜索并没有想出任何东西。我申请了WolframAlpha API,但除非他们选择给我一笔补助金,否则费用很高。
理想情况下,我可以将2d点数组输入函数,然后返回导数点的图形(数组)。
如果这样的库不存在,我将创建一个共享。
答案 0 :(得分:5)
既然你说你有一个2-D点数组,我假设你有两个变量f(x, y)
的函数。这意味着你没有单一衍生品。相反,你得到一组偏导数。
您可以使用有限差分公式近似偏导数。
x
f(x, y)
的偏导数为(f(x+h, y) - f(x-h, y))/2h
。
y
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
。在端点处的近似将不太准确,但这是无法避免的。