在 python 上创建一个具有任何值的重量级函数

计算科学 Python matplotlib
2021-12-27 14:49:30

我想要做的只是一个重型函数的变体,在不连续之前为 3,在不连续之后为 4。但是当我绘制它时,在不连续处它不是一条直线,而是一种x=αx功能。有人可以解释为什么会这样吗?解决方案图+代码

1个回答

当您向附近的域添加更多点时会发生什么x=xc? 此外,Heaviside 阶跃函数的许多(大多数,所有(?))定义给出了过渡点处极值的平均值,但您初始化为零并跳过x=xc在您的if块中。你也应该处理这种情况。

另外,当numpy 提供一个时,为什么要自己编写

编辑以解决有关 Python numpy.heaviside() 函数的评论(您可以完全满足您的要求):

import numpy
v=numpy.linspace(-1,1,num=21)
out=2.*numpy.heaviside(v,0.5)+3.
array([3., 3., 3., 3., 3., 3., 3., 3., 3., 3., 4., 5., 5., 5., 5., 5., 5.,
       5., 5., 5., 5.])

在这里,我仔细选择了我的参数,以便在转换点上找到一个点,以便输出上有一个点。至于您想要的任何值,您始终可以操纵结果以将其调整为您喜欢的域和范围。