我根据一篇论文实现了一种求解汉克尔变换的算法。我的问题是:它对于论文中建议的功能(作为测试功能)非常有效,对于某些其他测试功能来说效果很好,但是对于其他已知结果的功能,它只会产生垃圾(结果与预期相去甚远结果)。
这对我的实施意味着什么?
- 我的实现是垃圾,我必须重做。
- 我为函数选择了错误的数据输入,我必须更改它的参数
- 算法很垃圾,只好再选一个
- 我的编程很糟糕,我应该检查一下
对于那种情况,最好的,即最成功的方法是什么?
需要注意的是:该算法提供了一种转换方法()和一种反向转换()方法。比较和时,它们是相等的。但是和理论上的预期函数不是。
我使用以下论文作为来源:https ://www.osapublishing.org/josaa/abstract.cfm?uri= josaa-21-1-53(不幸的是在付费墙后面),但以零阶计算汉克尔变换。作为语言,我在 python 和 C/C++ 中都实现了该方法。论文中的示例,还有等示例,但例如不会(产生振荡)。
这是它的实现之一(同样的限制):https ://se.mathworks.com/matlabcentral/fileexchange/15623-hankel-transform?requestedDomain=www.mathworks.com