我正在尝试绘制两个函数的图形,但我想为一个条件绘制一个函数的图形,但如果满足另一个条件,则使用另一个函数绘制图形。
一个简单的例子是:
如果 x > 0 则 sin(x) 否则 cos(x)
然后它会根据 x 值绘制 cos 和 sin 图形,在 x = 0 处有一个明显的差距,因为 cos(0) = 1 和 sin(0) = 0。
编辑:有一种内置的方式。我将在下面留下我的原始答案供后代使用,但尝试使用piecewise()函数:
plot(piecewise(((cos(x),x<0), (sin(x), 0<x))))
Run Code Online (Sandbox Code Playgroud)
我猜想有一种内置的方法可以做到这一点,但我不知道。您可以将您的函数乘以Heaviside 阶跃函数来完成此任务。如果 x > 0,则阶跃函数为 1;如果 x < 0,则阶跃函数为 0,因此将其与函数相乘,然后将它们相加,将根据 x 的符号仅选择其中一个,也就是说:
f(x) := heaviside(x) * sin(x) + heaviside(-x) * cos(x)
Run Code Online (Sandbox Code Playgroud)
如果 x > 0,则赫维赛德 (x) = 1 且赫维赛德 (-x) = 0,因此 f(x) = sin(x)。
如果 x < 0,则赫维赛德 (x) = 0 且赫维赛德 (-x) = 1,因此 f(x) = cos(x)。
在这里查看它的实际效果。一般来说,请注意,如果您希望过渡位于 x = a,那么您可以分别执行 heaviside(xa) 和 heaviside(-x+a)。如果你想要 N 个函数,则每一项都必须有 (N-1) 个乘法阶跃函数,每个函数都有自己的 (x-a_i) 参数。我希望其他人可以贡献一个更清洁的解决方案。
| 归档时间: |
|
| 查看次数: |
1443 次 |
| 最近记录: |