You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求sin(x)积分的JavaScript代码及代码错误排查咨询

积分计算代码问题分析

你的代码错误核心是没有考虑积分近似计算中的区间宽度(Δx),具体问题和修正如下:

  • 缺失区间宽度的乘法
    用矩形法近似定积分时,需要将每个采样点的函数值乘以区间的宽度(Δx),再累加得到总面积(积分值)。你当前只累加了sin(x)的函数值,没有乘以每个小区间的宽度Math.PI/180,导致结果是函数值的直接求和,而非积分近似值。

  • 循环范围的次要问题
    你的循环包含了0到180共181个点,对应180个区间,虽然这不是核心错误,但如果要严格对应n个区间的采样,也可以改为i < 180,不过不影响修正后的结果准确性。

修正后的代码:

let total = 0;
const deltaX = Math.PI / 180;
for(let i = 0; i <= 180; i++ ) {
    total += Math.sin(i * deltaX) * deltaX;
}
console.log(total); // 输出结果接近2

修正后,每次累加的是小矩形的面积(函数值×区间宽度),结果会趋近于sin(x)从0到π的积分真实值2。你之前得到114,是因为直接累加了181个sin(x)的取值,这些值的总和刚好约为114,和积分的计算逻辑完全无关。

内容的提问来源于stack exchange,提问作者Hakan Egne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 03:55:30