如何在 Fortran 中定义周期函数?
How to define periodic function in 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.
也可能必须调整为更高一类。
如何在 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.
也可能必须调整为更高一类。