- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我需要使用混合和递归方法计算无限级数的总和。这两种方法有什么区别?
下面的代码显示了我是如何做的。我使用哪种方法?
例如,计算级数
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/
我基本上有三个表: hunt_c_usershunt_c_collected_eggshunt_c_achievements 我目前只使用 hunt_c_users 和 hunt_c_collecte
我已经计算了不同表中计数的总和。这会执行两次,每个 performanceID 一次。现在我想得到两个总和的总和。 下面是我目前做的两个总和的代码: SELECT SUM((COUNT (Bo
我有一个对 2 个值求和的脚本。我计划添加更多值(value),但首先我需要让它发挥作用。人们告诉我给他们 NUMBER 值,所以我这样做了,但现在它甚至没有给出输出。 base = 0; $("#F
我正在尝试计算在我们的数据库中跟踪的花费总额。每个订单文档包含一个字段“total_price” 我正在尝试使用以下代码: db.orders.aggregate({ $group: {
给定 Excel 2013(或更高版本)中的 2 个命名表: tbl发票 ID InvRef Total 1 I/123 45 2 I/234
希望你们一切都好。我来这里是因为我从今天早上开始就试图解决一个问题,我再也受不了了。 这就是上下文:我有一个 excel 工作簿,其中有不同的工作表,其中包含不同国家/地区的不同商业计划。我的目标是制
我有一份报告显示客户订购的产品及其价格: CompanyA Product 7 14.99 CompanyA Product 3 45.95 CompanyA Prod
我使用此python客户端: https://github.com/ryananguiano/python-redis-timeseries 如何汇总所有匹配? ts = TimeSeries(cli
希望创建一个总和和计数公式,该公式将自动调整以适应范围内插入的新行。 例如,如果我在单元格 D55 中有公式 =SUM(D17:D54)。每次我在该范围内插入新行时,我都需要更改公式的顶部范围来解释它
所以,我需要聚合日期相同的行。 到目前为止,我的代码返回以下内容: date value source 0 2018-04-08 15:52:26.1
我有数字输入 数量约为 30 我需要将它们全部汇总到一个字段 我拥有的在下面 查看:
您好,我正在尝试根据以下数据计算过去三个月中出现不止一次的不同帐户 ID 的数量;我想要 2 作为查询结果,因为 test1@gmail.com 和 test2@gmail.com 出现超过 1 次。
我有两个带有以下字段的表: ... orders.orderID orders.orderValue 和 payments.orderID payments.payVal 在 payments.pay
我想按 image_gallery 和 video_gallery 两列的 DESC 进行排序。 SELECT b.*, c.title as category, (S
实际上我的原始数据库为 SELECT sum(data1,data2) as database_value,sum(data3,data4) as database_not_value from t
我试图获取三个分数中每一个的值并将它们相加并显示在“总计:”中。我的问题是,我不知道如何做到这一点,以便每次其中一个分数值发生变化时,相应的总分值也会随之变化。 我可以在某处调用“onchange”来
如何获得按第一个值分组的元组列表中第二个和第三个值的总和? 即: list_of_tuples = [(1, 3, 1), (1, 2, 4), (2, 1, 0), (2, 2, 0)] expec
我正在尝试将我的列表中的整数转换为列表的总和和平均值,并说明任何低于冰点 F<32 的温度。每当我尝试获取总和或平均值时,我都会收到错误提示“+: 'int' 和 'str' 不支持的操作数类型”。我
在我的 ios 项目中,我使用了两个实体 (CoreData):具有一对多关系的 Person 和 Gifts 我知道如何计算给一个人的礼物总和: NSDecimalNumber *orderSum=
我有两个表(输入和类别): CREATE TABLE categories ( iId INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, sNam
我是一名优秀的程序员,十分优秀!