如何在Fortran中定义周期函数



如何在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.可能也必须调整为更高的种类。

最新更新