首页 > 解决方案 > 如何在 Fortran 中定义周期函数?

问题描述

如何在 Fortran 中定义周期函数?

例如f(x) = exp(-x**2),对于–10 < x < 10,周期为20

标签: functionfortran

解决方案


你应该可以使用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,...)根据需要。final-10.也可能必须调整为更高的类型。


推荐阅读