gpt4 book ai didi

algorithm - 计算一系列的总和

转载 作者:塔克拉玛干 更新时间:2023-11-03 06:03:11 25 4
gpt4 key购买 nike

我需要使用混合和递归方法计算无限级数的总和。这两种方法有什么区别?

下面的代码显示了我是如何做的。我使用哪种方法?

例如,计算级数

Sum = -X -(X^2/2) -(X^3/3) -(X^4/4)....etc

我会用这个代码

sum := -x;
numerator:= x;
n := 2;
current := -x;

repeat
numerator := numerator * x;
previous := current;
current := numerator/n;
n := n + 1;
sum := sum - current;
until ( abs(previous-current) < eps )

最佳答案

您的问题/问题太模糊/太笼统。因此,我只能提供一些一般性评论:

对于初学者来说,不存在对“任何”无限级数求和的通用方法。对于每个单独的级数,您将必须确定如何对特定的级数求和,这首先需要研究其收敛特性:一个级数可能会收敛、发散或有条件地收敛。简单地添加项直到项小于某个限制,或者直到连续项之间的差异变得小于某个限制并不能保证您接近限制和。事实上,它甚至不能保证总和是有限的(例如,考虑系列 1 + 1/2 + 1/3 + 1/4 ...)。

现在,让我们看一下您的示例:-sum( x^n/n; n=1..inf )。这个特定的级数对于任何 x>=1 和 x<-1 都没有有限和:它不会收敛,除非 -1<=x<1,项变得越来越大......(但是,继续阅读!)。

对于 abs(x)<1添加连续项的“直接”方法“最终”会给你正确的答案,但在你接近极限总和之前需要很长时间,除非 x 非常小,并评估你有多接近任何有限的子和都远非微不足道。此外,还有更好(=更快收敛)的方法来对此类序列求和。

在这个具体的例子中,你可能会注意到它是log(1-x),用麦克劳林级数展开表示,所以根本不需要设置繁琐的求和,因为无限求和的结果已经是已知。

现在,一方面考虑我们可以很容易地看到,每当 abs(x) 大于 1 时,对于更高的 'n',项会变得越来越大,因此任何简单的求和过程都必然会失败。另一方面,我们有 {log(1-x); 的麦克劳林展开式; -1<=x<1} 我们可能会思考这一切如何与肯定 log(1-x) 也存在并且对于 x=-4 是有限的知识相吻合:我们是否可以“定义”求和的极限x<-1 也是这个对数吗?!进入分析延续的奇妙世界。我不会讨论这个,这里会占用太多篇幅。

总而言之,对无限级数求和是一门艺术,而不是扔进标准求和机的东西。因此,如果不指定您希望对哪个系列求和,就无法先验地说明应该应用哪种方法。

最后,我不知道您所说的“混合方法”是什么意思,所以我无法对此发表评论,也无法将其与递归方法进行比较。递归方法可能会在您可以以与原始形式非常相似但只是“稍微简单一些”的形式编写您的系列时出现。一个例子,不是来自无限级数,而是来自有限级数:斐波那契数 F(n) 可以定义为有限和 F(N-1)+F(n-2)。那就是递归,你“只”需要知道一些基值——即:F(0)=F(1)=1——然后你就有了递归设置。以递归形式重写一个级数可能有助于找到解析解,或者拆分具有解析解的部分留下一个“更方便”的级数,这有助于快速收敛的数值方法。

也许“混合方法”旨在表示分析求和的混合 - 就像你的系列:log(1-x) - 和一些(智能或蛮力)数值近似(其中,正如其他人指出的那样, “递归”可能意味着“迭代”)。

总结:(a) 阐明“混合”和“递归”方法的含义; (b) 具体说明您需要求和的系列类型,以免没有合理的答案。

关于algorithm - 计算一系列的总和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13008412/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com