如何在Fortran中定义周期函数?
例如,f(x) = exp(-x**2)
,对于–10<x<10,周期20
您应该可以使用MODULO
f = exp(-(MODULO(x-10,20.)-10.)**2)
x-10
用于将重复间隔移动到-10,10。否则,MODULO(x, 20.)
将在间隔0,20上是周期性的。由于MODULO
重新运行值[0,20(,最后的-10将其转换为[-10,10(
我假设x是real
。如果它有不同的种类,甚至不同的类型,MODULO
的另一个参数必须是相同的类型(根据需要20._wp, 20.d0, 20,...)
。最终的-10.
可能也必须调整为更高的种类。