返回列表 发新帖
收起左侧
楼主: cem-uestc - 

Bessel函数导数的零点计算代码(MATLAB)

  [复制链接]
发表于 2010-2-23 21:54:30  | 显示全部楼层
是双精度计算
以己之微·网博天下:博览微网之术·创造成功之路!
发表于 2010-2-24 12:49:44  | 显示全部楼层
本帖最后由 kerbcurb 于 2010-2-24 13:31 编辑

从昨天到现在一直在研究这个问题,感觉Wolfram 公司的webComputing 提供的在线计算得出的J0的根可以准确到15位,我这里的得出的前100为的数据感觉比他的准确,因为没有权威的数据可以比较,自认为以下的数据至少是15位精度的:
2.40482555769577276
5.52007811028631064
8.65372791291101221
11.79153443901428160
14.93091770848778590
18.07106396791092250
21.21163662987925890
24.35247153074930270
27.49347913204025480
30.63460646843197510
33.77582021357356870
36.91709835366404400
40.05842576462823930
43.19979171317673040
46.34118837166181400
49.48260989739781720
52.62405184111499600
55.76551075501997930
58.90698392608094210
62.04846919022716990
65.18996480020686050
68.33146932985679830
71.47298160359373280
74.61450064370183790
77.75602563038805510
80.89755587113762790
84.03909077693819020
87.18062984364115370
90.32217263721048010
93.46371878194477420
96.60526795099626880
99.74681985868059650
102.88837425419479500
106.02993091645161600
109.17148964980538400
112.31305028049491000
115.45461265366694000
118.59617663087253200
121.73774208795096300
124.87930891323294600
128.02087700600832400
131.16244627521391500
134.30401663830546600
137.44558802028427800
140.58716035285429700
143.72873357368973300
146.87030762579665000
150.01188245695475800
153.15345801922789300
156.29503426853352400
159.43661116426314600
162.57818866894667800
165.71976674795502100
168.86134536923582600
172.00292450307820000
175.14450412190274300
178.28608420007377100
181.42766471373105100
184.56924564063871800
187.71082696004936000
190.85240865258152200
193.99399070010912000
197.13557308566141500
200.27715579333241200
203.41873880819864600
206.56032211624447400
209.70190570429407500
212.84348955994948300
215.98507367153401300
219.12665802804056800
222.26824261908431400
225.40982743485933000
228.55141246609881300
231.69299770403853900
234.83458314038324100
237.97616876727566300
241.11775457726802300
244.25934056329568300
247.40092671865282500
250.54251303696995600
253.68409951219308100
256.82568613856441300
259.96727291060447200
263.10885982309547100
266.25044687106588000
269.39203404977606700
272.53362135470493200
275.67520878153745400
278.81679632615308700
281.95838398461492000
285.09997175315956500
288.24155962818769600
291.38314760625521200
294.52473568406495200
297.66632385845894300
300.80791212641113500
303.94950048502058100
307.09108893150503900
310.23267746319496100
313.37426607752784500

本次回帖给出的J0的100个根是根据求解微分方程的办法得出的,速度较慢,但是精度自认为应该没有问题,我与Matlab比较过过在自变量从0到2222时,J0,J0'【等于-J1】等精度不小于matlab提供的数据,通过牛顿法求解出根,根的精度也应该在15位。

网上流行的bessel函数的计算公式,是这样的:自变量小于8的时候采用Pade分式逼近,精度等级是9位的,自变量大于8采用级数的办法计算,我隐约记得精度不高于12位,因为2004年的时候研究过这个问题,
如果想提高在变量大于8以后的函数的精度,必须重新找到一组系数,好像当时我找到过,但是忘记代码放在什么地方了,应该可以找到。因此前几个帖子提供的数据是9位的。

另外John F. Hart在 Computer Approximations中给出了多组Pade分式插值的系数,我整理了一组,据说在自变量小于8的时候,精度可以达到23位,在这里发给大家:    long double Q[10] = {1641556014884554385346137.617, 16033037244408932735390.45602, 79130437776464052403.23616203, 261316531332515327.8086066185, 642960791882601.77592892131, 1237672982083.40790348317773, 1893012093.677918995179541438, 2263381.356781110003609399116, 1974.019272727281783930443513, 1.0};
    long double P[10] = {1641556014884554385346147.435, -394355966476729663601261.6471, 21720183859245393139822.87997, -481485995206981764828.5245941, 5345457598841972345.381674607, -33015389256896376.8646542622, 118739068121104.2949874031474, -247985116789.6144439689877514, 280314894.0831953934479400118, -133662.5500481224741885945416};

Pade插值大家都知道,P是分子的系数,Q是分母的系数,自变量的阶数是升序。


完后我会提供15为精度100个J0'的根,
以己之微·网博天下:博览微网之术·创造成功之路!
发表于 2010-2-24 13:36:39  | 显示全部楼层
J0‘的前100个根,不小于15位精度
3.83170597020751183
7.01558666981561840
10.17346813506272180
13.32369193631422290
16.47063005087763270
19.61585851046824190
22.76008438059277180
25.90367208761838250
29.04682853491685490
32.18967991097440340
35.33230755008386460
38.47476623477161440
41.61709421281444990
44.75931899765282050
47.90146088718544580
51.04353518357150790
54.18555364106131880
57.32752543790100880
60.46945784534748950
63.61135669848123040
66.75322673409849140
69.89507183749577210
73.03689522557383310
76.17869958464145600
79.32048717547629800
82.46225991437355510
85.60401943635022980
88.74576714492630580
91.88750425169498430
95.02923180804469440
98.17095073079078130
101.31266182303873000
104.45436579128276000
107.59606325950917200
110.73775478089921500
113.87944084759499800
117.02112189889242500
120.16279832814900400
123.30447048863571800
126.44613869851659600
129.58780324510399700
132.72946438850961700
135.87112236478900200
139.01277738865970500
142.15442965585903100
145.29607934519590900
148.43772662034223200
151.57937163140143000
154.72101451628595600
157.86265540193030000
161.00429440536199600
164.14593163464963900
167.28756718974408700
170.42920116322663600
173.57083364097593200
176.71246470276376100
179.85409442278838900
182.99572287015297000
186.13735010929551300
189.27897620037601900
192.42060119962571000
195.56222515966258800
198.70384812977705700
201.84547015619088800
204.98709128229235000
208.12871154885006500
211.27033099420777300
214.41194965446197600
217.55356756362419600
220.69518475376936600
223.83680125517173500
226.97841709642947800
230.12003230457910600
233.26164690520062200
236.40326092251430800
239.54487437946987800
242.68648729782871700
245.82809969823981500
248.96971160030994500
252.11132302266860200
255.25293398302814000
258.39454449823952700
261.53615458434407700
264.67776425662150400
267.81937352963458800
270.96098241727073600
274.10259093278068600
277.24419908881457900
280.38580689745560400
283.52741437025141000
286.66902151824345000
289.81062835199441500
292.95223488161390900
296.09384111678248100
299.23544706677414900
302.37705274047751900
305.51865814641560000
308.66026329276441000
311.80186818737045600
314.94347283776716800
以己之微·网博天下:博览微网之术·创造成功之路!
发表于 2010-2-24 18:26:24  | 显示全部楼层
采用双精度的计算,有效数字是15位,国外是采用双精度计算
以己之微·网博天下:博览微网之术·创造成功之路!
发表于 2010-2-26 12:17:27  | 显示全部楼层
今天把那个东西做完了,发给大家,欢迎拍砖,
游客,如果您要查看本帖隐藏内容请回复

以己之微·网博天下:博览微网之术·创造成功之路!
发表于 2010-2-26 12:24:42  | 显示全部楼层
本帖最后由 kerbcurb 于 2010-2-26 19:33 编辑

如果有人需要bessel函数2阶、3阶乃至4阶导数的零点,你说一下,也可以做到的,这一次只做到1阶导数的零点。下面的视屏是使用演示。

解压后,用视频播放器或者Ie浏览器播放,打开那个文件夹,双击besselzeros.html文件,如果不能打开,使用暴风影音打开besselzeros.swf文件也可以

besselzeros.rar

10.24 MB, 下载次数: 19, 下载积分: 微元 3

已有1人评分微元 理由
cem-uestc + 50 + 1 + 20 这个要奖励

查看全部评分 总评分:微元 +50  +1  +20 

以己之微·网博天下:博览微网之术·创造成功之路!
发表于 2010-2-26 19:42:53  | 显示全部楼层
辛苦了,谢谢共享
以己之微·网博天下:博览微网之术·创造成功之路!
发表于 2010-2-26 19:54:39  | 显示全部楼层
本帖最后由 kerbcurb 于 2010-2-26 20:35 编辑

我本身不研究波导,这个我用不着,如果需要求解哪一类方程,我会用其他方法
以己之微·网博天下:博览微网之术·创造成功之路!
发表于 2010-3-3 10:37:58  | 显示全部楼层
16楼是那个工具软件,17楼是使用演示
以己之微·网博天下:博览微网之术·创造成功之路!
发表于 2010-3-3 15:36:09  | 显示全部楼层
回复 20# kerbcurb


    可以单独发个帖子,把他展示出来
以己之微·网博天下:博览微网之术·创造成功之路!

发表回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

返回列表 客服中心 搜索
关于我们
关于我们
关注我们
联系我们
帮助中心
资讯中心
企业生态
社区论坛
服务支持
资源下载
售后服务
推广服务
关注我们
官方微博
官方空间
官方微信
快速回复 返回顶部 返回列表