24小时热门版块排行榜    

查看: 595  |  回复: 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的回帖

walk1997

金虫 (著名写手)

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

wocamuchong

铁虫 (小有名气)

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

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

大家的诚

银虫 (小有名气)

你好,请问离散的方法如何实现?
5楼2015-12-10 09:09:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 一志愿天津大学339材料与化工求调剂 +3 江往卖鱼 2026-03-26 3/150 2026-03-26 09:42 by 王小欠i
[考研] 07化学303求调剂 +5 睿08 2026-03-25 5/250 2026-03-25 22:46 by 418490947
[考研] 材料求调剂 +4 .m.. 2026-03-25 4/200 2026-03-25 21:30 by peike
[考研] 290分调剂求助 +3 吉祥止止陈 2026-03-25 3/150 2026-03-25 19:58 by barlinike
[考研] 321求调剂 +3 璞玉~~ 2026-03-25 3/150 2026-03-25 19:07 by Zhanglab-TJU
[考研] 085602 289分求调剂 +7 WWW西西弗斯 2026-03-24 7/350 2026-03-25 14:28 by 3Strings
[考研] 材料与化工考研调剂 +9 孅華 2026-03-22 9/450 2026-03-25 13:09 by cmz0325
[考研] 281求调剂 +4 Koxui 2026-03-24 5/250 2026-03-25 11:38 by userper
[考研] 材料调剂 +6 匹克i 2026-03-23 6/300 2026-03-24 21:09 by greychen00
[考研] 300分,材料,求调剂,英一数二 +5 超赞的 2026-03-24 5/250 2026-03-24 21:07 by 星空星月
[考研] 080500求调剂 +3 zzzzfan 2026-03-24 3/150 2026-03-24 16:38 by barlinike
[考研] 一志愿吉大化学322求调剂 +4 17501029541 2026-03-23 6/300 2026-03-24 10:21 by 戴围脖的小蚊子
[考研] 一志愿山东大学药学学硕求调剂 +3 开开心心没烦恼 2026-03-23 4/200 2026-03-24 00:06 by 开开心心没烦恼
[考研] 269求调剂 +4 我想读研11 2026-03-23 4/200 2026-03-23 21:25 by pswait
[考研] 336求调剂 +4 收到VS 2026-03-20 4/200 2026-03-23 19:02 by macy2011
[考研] 070300,一志愿北航320求调剂 +3 Jerry0216 2026-03-22 5/250 2026-03-23 09:16 by 。。堂堂
[考研] 275求调剂 +6 shansx 2026-03-22 8/400 2026-03-22 15:27 by barlinike
[考研] 297求调剂 +3 喜欢还是不甘心 2026-03-20 3/150 2026-03-21 18:33 by 学员8dgXkO
[考研] 求调剂一志愿南京航空航天大学289分 +3 @taotao 2026-03-19 3/150 2026-03-20 21:34 by JourneyLucky
[考研] 一志愿南理工085701环境302求调剂院校 +3 葵梓卫队 2026-03-20 3/150 2026-03-20 19:28 by zhukairuo
信息提示
请填处理意见