js实现积分
实现数值积分的方法
在JavaScript中实现数值积分可以通过多种方法,以下是常见的几种数值积分算法及其实现方式。
矩形法(Rectangle Method)
矩形法是最简单的数值积分方法,通过将积分区间划分为多个小矩形来近似积分值。

function rectangleMethod(f, a, b, n) {
const h = (b - a) / n;
let sum = 0;
for (let i = 0; i < n; i++) {
sum += f(a + i * h);
}
return sum * h;
}
梯形法(Trapezoidal Rule)
梯形法通过将积分区间划分为多个小梯形来提高精度。
function trapezoidalRule(f, a, b, n) {
const h = (b - a) / n;
let sum = (f(a) + f(b)) / 2;
for (let i = 1; i < n; i++) {
sum += f(a + i * h);
}
return sum * h;
}
辛普森法(Simpson's Rule)
辛普森法通过使用抛物线来近似曲线,进一步提高了精度。

function simpsonsRule(f, a, b, n) {
if (n % 2 !== 0) n++; // Ensure n is even
const h = (b - a) / n;
let sum = f(a) + f(b);
for (let i = 1; i < n; i++) {
const x = a + i * h;
sum += i % 2 === 0 ? 2 * f(x) : 4 * f(x);
}
return sum * h / 3;
}
蒙特卡洛积分(Monte Carlo Integration)
蒙特卡洛积分通过随机采样来估计积分值,适用于高维积分。
function monteCarloIntegration(f, a, b, n) {
let sum = 0;
for (let i = 0; i < n; i++) {
const x = a + Math.random() * (b - a);
sum += f(x);
}
return sum * (b - a) / n;
}
使用示例
以下是一个使用辛普森法计算积分的示例:
function exampleFunction(x) {
return x * x; // Integrate x^2 from 0 to 1
}
const result = simpsonsRule(exampleFunction, 0, 1, 100);
console.log(result); // Expected ~0.333...
注意事项
- 数值积分方法的精度取决于划分的区间数
n,n越大精度越高,但计算量也越大。 - 对于复杂函数或高维积分,可能需要选择更高级的算法或优化方法。






