5

我正在尝试绘制两个函数,但我想为一个条件绘制一个函数,但如果满足另一个条件,则使用另一个函数绘制图形。

一个简单的例子是:

如果 x > 0 则 sin(x) 否则 cos(x)

然后它会根据 x 值绘制 cos 和 sin,在 x = 0 处存在明显的差距,因为 cos(0) = 1 和 sin(0) = 0。

4

1 回答 1

3

编辑:有一个内置的方式。我将在下面留下我的原始答案以供后代使用,但请尝试使用分段()函数:

plot(piecewise(((cos(x),x<0), (sin(x), 0<x))))

看这里。


我猜想有一种内置的方法可以做到这一点,但我不知道。您可以将您的函数乘以Heaviside Step Function来完成此任务。如果 x > 0 则 step 函数为 1,如果 x < 0 则为 0,因此将其乘以您的函数,然后将它们相加将根据 x 的符号仅选择其中一个,也就是说:

f(x) := heaviside(x) * sin(x) + heaviside(-x) * cos(x)

如果 x > 0,heaviside(x) = 1 并且 heaviside(-x) = 0,所以 f(x) = sin(x)。

如果 x < 0,则 heaviside(x) = 0 且 heaviside(-x) = 1,因此 f(x) = cos(x)。

在这里查看它的实际应用。一般来说,请注意,如果您希望转换位于 x = a,那么您可以分别执行 heaviside(xa) 和 heaviside(-x+a)。如果你想要 N 个函数,你必须在每个术语上有 (N-1) 个相乘的阶跃函数,每个函数都有自己的 (x-a_i) 参数。我希望其他人可以提供更清洁的解决方案。

于 2015-07-20T04:05:01.977 回答