【问题标题】:Find null points of sinus function找到正弦函数的零点
【发布时间】:2010-11-03 08:06:40
【问题描述】:

我想在 java 中实现一个函数来查找 sinus 函数的空点。我知道该怎么做,但我并不真正理解该问题的以下定义:

实现一个函数,在 a 和 b 之间的区间内搜索 sinus 函数中的空点。 search-interval[lower limit, upper limit] 应该减半,直到下限和上限之间的距离小于 0.0001。

为什么要将间隔减半?有什么想法吗?

【问题讨论】:

  • 你的意思是空点与x线的交叉点?
  • 家庭作业? SW 项目的功能需求?如果有作业,请加homework标签。
  • @org.life.java - 找到根源是他正在寻找的。 “零点”是德语术语“Nullstelle”(英语:root)逐字翻译的结果。
  • 是的,“零分”大概就是这个意思
  • 不鼓励使用作业标签。这个问题清楚地表明它是家庭作业。 blog.stackoverflow.com/2010/08/the-death-of-meta-tags

标签: java function math


【解决方案1】:

听起来您被要求实现binary search,并且您可能需要|b-a| < pi,因此间隔中有一个唯一的根。顺便说一句,这些在英语中被称为“正弦”和“根”(或“零”)。

这个想法是,在区间端点处评估的函数(正弦)将给出一个肯定答案和一个否定答案(如果两者都是肯定的或两者都是否定的,那么它会失败)。因为正弦是连续的,所以在两者之间必须有一个值为零的点(中间值定理)。检查间隔的中点。如果它是正数,则从您的区间折叠到负值端点和中点之间的区间。否则,崩溃到另一半。重复此操作,直到您处于所需的零附近。

【讨论】:

  • 黑白是什么意思? w是什么?
【解决方案2】:

提示:如果

(A) sgn(f(lower_limit) != sgn(f(upper_limit))

如果条件A为真:将区间减半,iaw:

{[min,max]} -> {[min, (max-min)/2] , ](max-min)/2,max]}

并检查两个子区间。

只需在纸上尝试一下(使用图,将中间值减半并尝试找出哪个区间是“根容器”的候选对象)

【讨论】:

    【解决方案3】:

    鼻窦由它的频率定义。零交叉出现在正弦周期 0.5 和 1 处。即 sin * pi 和 *2pi 用于普通的 sin 代码函数。所以在 A 和 B 之间,零交叉点都是小于 B 大于 A 的点,等于周期 == 1 和 0.1,使用模数忽略 2、2.5 等值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多