24小时热门版块排行榜    

查看: 594  |  回复: 4
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

wocamuchong

铁虫 (小有名气)

[求助] 怎样加快这个代码的运行?

Hi,

我要在Mathematica里做Hankel transform(它就是像傅立叶变换,但是以Bessel函数为base),具体的转换公式可以参考wiki,http://en.wikipedia.org/wiki/Hankel_transform。但是我在Mathematica里直接用数值积分的办法来进行转换,好像很慢。

我上传我的代码。其中
a : 我要转换的离散数值,可以是任何函数。第一个index是坐标r,第二个index是具体数值。
然后我做interpolation得到他的插值的函数。
然后用NIntegrate来算Hankel transform。

像傅立叶转换一样,Hankel transform也有逆转换。倒数第二行就是逆转换的定义,然后最后一行给出的数值应该是落于{0.9986238244, 0.0002427139}, {1.0101920314, 0.0002393707}之间,这个是从a里读出来的数据。

但是这个运行的时间好像太长,我运行了20分钟,还没有结果。不知道大家有没有更好的办法,我Mathematica不是很熟。谢谢。
回复此楼

» 本帖附件资源列表

  • 欢迎监督和反馈:小木虫仅提供交流平台,不对该内容负责。
    本内容由用户自主发布,如果其内容涉及到知识产权问题,其责任在于用户本人,如对版权有异议,请联系邮箱:xiaomuchong@tal.com
  • 附件 1 : xiaomuchong.nb
  • 2014-10-13 20:40:46, 45.25 K

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wocamuchong

铁虫 (小有名气)

你说的对,我没注意Mathematica里的interpolation是怎么做的,我看了下,他就是让它变成常数在很大的r,若是非零常数就不收敛了,就像你指出的。我还以为Mathematica会给一个compact support,所以外面都是零。

谢谢了,我用discrete的定义式直接做了,好像可以inverse回来得到原来的input。
4楼2014-10-14 22:05:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 5 个回答

walk1997

金虫 (著名写手)

几个问题
1. 数学,这个变换的存在对这个函数是有要求的吧,
要求这个函数的绝对值|f(r)|*r在0到无穷间的积分区域收敛吧.
看你的函数,原始差不多只是定义在小量到20左右,并且在这附近都是常数,一方面你插值以后外推到无穷远处不太合理,另外一方面要是在大x都取成常数的话,也不符合做这个变换的条件。我觉得你这个时候不应该用到变换吧,而应该用类似的无穷级数展开,比如..
f[w]=\sum_{1} BesselJ[0,\sqrt{mu_m \rho}]
2. 另外,如果直接截断第一个积分到20,给出的结果感觉差不多
--------------
r1 = 1;
NIntegrate[
  ifun[r] *r* BesselJ[0, k*r]*BesselJ[0, k*r1]*k, {k, 0,
   Infinity}, {r, 0, 20}, PrecisionGoal -> 2,
  MaxRecursion -> 40] // AbsoluteTiming
------------
{1092.899510,0.000242286}
2楼2014-10-14 12:34:56
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

walk1997

金虫 (著名写手)

btw: 如果是真积分从0到无穷的话,对于Beesel这样的振荡函数,可能采用Method -> {"DoubleExponentialOscillatory"} 会给出更可靠的结果
有时候默认的结果虽然并不报错 但可能并不是真实的结果.
3楼2014-10-14 12:44:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

大家的诚

银虫 (小有名气)

你好,请问离散的方法如何实现?
5楼2015-12-10 09:09:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 寻找调剂 +5 倔强芒? 2026-03-21 8/400 2026-03-26 13:25 by 0906ljy
[考研] 环境专硕324分求调剂推荐 +5 轩小宁—— 2026-03-26 5/250 2026-03-26 12:05 by i_cooler
[考研] 334分 一志愿武理-080500 材料求调剂 +4 李李不服输 2026-03-25 4/200 2026-03-25 21:26 by 星空星月
[考研] 生物技术与工程 +3 1294608413 2026-03-25 4/200 2026-03-25 18:02 by 1294608413
[考研] 284求调剂 +15 Zhao anqi 2026-03-22 15/750 2026-03-25 12:51 by wht0531
[考研] 材料学硕,求调剂 6+4 糖葫芦888ll 2026-03-22 9/450 2026-03-25 11:19 by greychen00
[考研] 化学调剂 +6 yzysaa 2026-03-21 6/300 2026-03-25 09:27 by aa331100
[考研] 311求调剂 +3 冬十三 2026-03-24 3/150 2026-03-24 21:31 by peike
[考研] 调剂 +4 13853210211 2026-03-24 4/200 2026-03-24 19:44 by ms629
[考研] 化工专硕求调剂 +3 question挽风 2026-03-24 3/150 2026-03-24 18:48 by jhhcooi
[考研] 资源与环境 调剂申请(333分) +7 holy J 2026-03-21 7/350 2026-03-24 17:24 by xiaohai104
[考研] 求调剂 +5 林之夕 2026-03-24 5/250 2026-03-24 17:16 by dick_runner
[考研] 【双一流院校新能源、环境材料,材料加工与模拟招收大量调剂】 +4 Higraduate 2026-03-22 7/350 2026-03-24 11:23 by 种大树
[考研] 276求调剂。有半年电池和半年高分子实习经历 +9 材料学257求调剂 2026-03-23 10/500 2026-03-24 07:36 by wangy0907
[考研] 一志愿国科过程所081700,274求调剂 +3 三水研0水立方 2026-03-23 3/150 2026-03-23 23:11 by MajorWen
[考研] 石河子大学(211、双一流)硕博研究生长期招生公告 +3 李子目 2026-03-22 3/150 2026-03-22 21:01 by 怎么释怀
[考研] 324求调剂 +6 lucky呀呀呀鸭 2026-03-20 6/300 2026-03-22 16:01 by ColorlessPI
[考研] 311求调剂 +3 26研0 2026-03-20 3/150 2026-03-22 14:46 by ColorlessPI
[考研] 269专硕求调剂 +6 金恩贝 2026-03-21 6/300 2026-03-22 14:31 by ColorlessPI
[考研] 320求调剂0856 +3 不想起名字112 2026-03-19 3/150 2026-03-19 22:53 by 学员8dgXkO
信息提示
请填处理意见