如何解决将数学翻译成 JavaScript;收敛/发散级数
我正在尝试用 JavaScript 计算以下系列:
我的代码如下:
var res = []
for(var i=0; i<1000; i++) {
res.push(i / ((i * Math.sqrt(i + 1)) + ((i + 1) * Math.sqrt(i))))
}
但这使得序列可能收敛到 0 而不是接近 1。这是前 150 个步骤:
我从数学到 JavaScript 的翻译有什么问题吗?也许是我的括号?
更新
根据@Barmar 的回答,正确的代码显示仅对于小的无穷大值收敛到 1,在 4 个步骤后发散:
解决方法
您需要将系列的每个元素添加到之前的总和中。
您还需要从 i = 1
开始以避免除以 0。
console.config({
maxEntries: Infinity
});
var res = [];
var sum = 0;
for (var i = 1; i < 1000; i++) {
sum += i / ((i * Math.sqrt(i + 1)) + ((i + 1) * Math.sqrt(i)));
res.push(sum);
}
console.log(res);
.as-console-wrapper {
max-height: 100% !important;
}
请注意,这表明该系列实际上并未收敛到 1。从您的错误图中也可以看出这一点,因为您可以看到前 5 个元素位于 0.195
和 0.293
之间,这些加起来超过 1。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。