如何将正弦函数从一个范围拟合到另一个范围?

问题描述 投票:0回答:1

我想将跨越通常的 y 方向范围从 -1 到 1 的正弦波拟合到 3 到 13 的范围内(例如)。有没有一个简单的命令可以做到这一点?

trigonometry
1个回答
0
投票

你真的不需要一个函数来做到这一点,只需要一些基本的代数。

首先,您想通过平均预期的上限和下限来获得转换后的正弦波的中线。在你的例子中,它是 8 因为

(3+16)/2 = 8
.

接下来,您将要找到变换后的正弦波的幅度。您可以通过从上限中减去中线来做到这一点。在您的示例中,它是

5
因为
13-8 = 5
.

有了这些值,您只需将正弦函数的输出乘以您的振幅,然后加上中线。在您的示例中,您想使用

5*sin(x)+8
。如果您想对此进行校对,只需将其插入 Desmos 或任何其他图形计算器即可。

您最初的问题没有指定语言,但这里有一个 Python 示例,可以轻松翻译成任何其他语言:

import math

def transformedSine(upper, lower, input):
    midline = (upper + lower) / 2
    return (upper-midline) * math.sin(input) + midline;
© www.soinside.com 2019 - 2024. All rights reserved.