只使用if语句,我需要在闭区间(a,b)找到sin(x)的最大点。我知道检查sin(a)或sin(b)是否为1.我也知道如果b-a大于2 pi,则最大值为1.
如果这些陈述都不成立,我无法弄清楚如何通过if语句检查这些点之间的等式值是否为1。
答案 0 :(得分:2)
有一个,用sin(x)== 1计算下一个点。然后将x与b进行比较,以检查1是否在您的区间内。
执行此操作的步骤:
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)。
有道理吗? :)