【发布时间】:2018-01-25 18:55:52
【问题描述】:
问题
我要找
- 第一个词根
- 第一个局部最小值/最大值
给定范围内的黑盒函数。
该函数具有以下属性:
- 它是连续且可微的。
- 它是常数和周期函数的组合。所有时期都是已知的。
(如果可以用较弱的假设来做就更好了)
求根和极值的最快方法是什么?
我需要更多的假设或函数界限吗?
我尝试过的
我知道我可以使用root-finding algorithm。我不知道的是如何有效地找到第一个根。
它需要足够快,以便它可以在几毫秒内以 1.0 的精度和 1.0e+8 的范围运行,这就是问题所在。
由于范围可能非常大并且应该足够精确,因此我无法通过检查所有可能的子范围来强制它。
我考虑过bisection method,但如果函数在该范围内只有一个大根,则查找第一个根太慢,因为应检查每个子范围。
如果解决方案是在 java 中是可取的,但任何类似的语言都可以。
背景
我想计算任意天体何时达到一定高度。
这是一个配置定义的虚拟对象,所以我不能假设任何关于该对象的内容。
由于涉及到各种坐标,因此无论是解析解还是简单近似都不容易。
我决定为此找到一个数值解。
【问题讨论】:
-
所以,对于第一个根,请阅读这篇文章:stackoverflow.com/questions/16501182/…
-
我投票结束这个问题,因为它看起来像一个家庭作业,除了剪切和粘贴之外没有任何努力。
-
等等,什么?不,不是。这样的事情怎么可能是家庭作业?为了什么?由于我对太空充满热情,因此我正在自己编写一个带有可配置天体的程序。没有人让我这样做。
-
您应该放弃您的毫秒级 SLA。让它运行,让它运行正确,让它运行得快。发布代码并提出具体问题。在你这样做之前,我们必须假设你没有写任何东西。
-
我没有写任何东西,因为我没有找到任何解决这个特定问题的方法。我可以写简单的二分法。但我没有,它不会在任何意义上解决我的问题。我为什么要那么做。我想我可能在错误的 stackoverflow 上发布了这个。
标签: math