如何在一个区间内通过matlab找到sin(x)的最大值?

时间:2014-02-01 01:28:18

标签: matlab max sin

只使用if语句,我需要在闭区间(a,b)找到sin(x)的最大点。我知道检查sin(a)或sin(b)是否为1.我也知道如果b-a大于2 pi,则最大值为1.

如果这些陈述都不成立,我无法弄清楚如何通过if语句检查这些点之间的等式值是否为1。

2 个答案:

答案 0 :(得分:2)

有一个,用sin(x)== 1计算下一个点。然后将x与b进行比较,以检查1是否在您的区间内。

执行此操作的步骤:

  1. 减去班次
  2. 除以2 pi
  3. 向上,我们想要一个
  4. 的最大权利
  5. 反向2和1
  6. candidate=(ceil((a-pi/2)/pi/2)*pi*2)+pi/2
    if candidate<b
       candidate is maximum
    

答案 1 :(得分:1)

首先检查(b-a)&gt; 2PI。

然后你可以使用正弦的导数是余弦的事实。因此,如果cos(a)是正的并且cos(b)是负的,那么如果cos(a)是负的,那么在它们之间就有峰值。 cos(b)积极地是一个山谷。如果cos(a)和cos(b)是相同的符号,则检查是否(b-a)&gt;如果你有一个高峰,我会想。最后是罪(a)vs罪(b)。

有道理吗? :)