24小时热门版块排行榜    

查看: 1560  |  回复: 7
当前主题已经存档。

zhangyatao

木虫 (正式写手)

[交流] [color=Blue]【求助】Bessel函数的Matlab解法[/color]

对于下面的Bessel函数,如何用Matlab求解,麻烦给出源程序或类似程序,多谢了!
D*x*J1(x)=J0(x),其中D是常数。

[ Last edited by zhangyatao on 2009-4-1 at 16:51 ]
回复此楼
资源共享,一起飞翔!
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fspdlh

金虫 (正式写手)

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
zhangyatao(金币+8,VIP+0):程序有点错误,不过还是挺感谢你的! 4-1 15:41
sunxiao(金币+2,VIP+0):谢谢参与交流,欢迎常来仿真编程版 4-1 22:38
可以先画图像看看啊
fplot('x*Bessel(x,1)-Bessel(x,0)',[-10,100])
可以看出,方程无解,但函数随x的增大是趋近于零的
>> x=20

x =

    20

>> x*Bessel(x,1)-Bessel(x,0)

ans =

  7.7470e-024

>> x=10000

x =

       10000

>> x*Bessel(x,1)-Bessel(x,0)

ans =

     0

[ Last edited by fspdlh on 2009-4-1 at 15:19 ]
2楼2009-04-01 15:16:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhangyatao

木虫 (正式写手)

fplot('x*Bessel(x,1)-Bessel(x,0)',[-10,100])
应该是:
fplot('x*Bessel(1,x)-Bessel(0,x)',[-10,100]) 吧
资源共享,一起飞翔!
3楼2009-04-01 15:24:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

戴氓

新虫 (初入文坛)

★ ★ ★ ★ ★
zhangyatao(金币+5,VIP+0):十分感谢! 4-1 15:46
fplot('x*Bessel(1,x)-Bessel(0,x)',[-10,100])
有解的,但我没法找到零点
4楼2009-04-01 15:34:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fspdlh

金虫 (正式写手)

★ ★
zhangyatao(金币+2,VIP+0):谢谢你! 4-1 15:42
呵呵,我不是学物理的,不太明白,这样是个波动的一个函数,好像周期是固定的啊,可以在每一段上用二分法来做。
5楼2009-04-01 15:34:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhangyatao

木虫 (正式写手)

呵呵,是的,就是不知道如何找到零点!
资源共享,一起飞翔!
6楼2009-04-01 15:37:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fspdlh

金虫 (正式写手)

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
zhangyatao(金币+15,VIP+0):十分感谢!另外,如果方程里面有个常数D(见编辑后的帖子),还能否得到带有常数D的数值解,谢谢哈! 4-1 16:45
sunxiao(金币+4,VIP+0):谢谢参与交流,欢迎常来仿真编程版 4-1 22:37
function x=solvefun(a,b,tol)

%--------------------------------------------------------------------------
range=a:1:b;
if range(end)     range=[range,b];
end
tag=[abs(diff(sign(fun(range)))) 0];
range=range(find(tag>0))';
range=[range range+1];
%--------------------------------------------------------------------------
n=size(range,1);
tol=tol/10;
x=zeros(n,1);
for i=1:n
    xmin=range(i,1);
    xmax=range(i,2);
    xcur=(xmin+xmax)/2;
    while xmax-xmin>tol
        if sign(fun(xmin))*sign(fun(xcur))>0
            xmin=xcur;
        else
            xmax=xcur;
        end
        xcur=(xmin+xmax)/2;
    end
    x(i)=xcur;
end
%--------------------------------------------------------------------------
function y=fun(x)
y=x.*Bessel(1,x)-Bessel(0,x);


>> solvefun(0,100,1e-4)

ans =

    1.2558
    4.0795
    7.1558
   10.2710
   13.3984
   16.5312
   19.6667
   22.8040
   25.9422
   29.0812
   32.2207
   35.3606
   38.5007
   41.6411
   44.7817
   47.9223
   51.0631
   54.2040
   57.3450
   60.4860
   63.6271
   66.7682
   69.9094
   73.0506
   76.1918
   79.3331
   82.4744
   85.6157
   88.7570
   91.8984
   95.0398
   98.1811

>>
7楼2009-04-01 16:20:38
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

fspdlh

金虫 (正式写手)

★ ★ ★ ★
sunxiao(金币+4,VIP+0):谢谢参与交流,欢迎常来仿真编程版 4-1 22:37
function x=solvefun(a,b,D,tol)

%--------------------------------------------------------------------------
range=a:1:b;
if range(end)     range=[range,b];
end
tag=[abs(diff(sign(fun(range,D)))) 0];
range=range(find(tag>0))';
range=[range range+1];
%--------------------------------------------------------------------------
n=size(range,1);
tol=tol/10;
x=zeros(n,1);
for i=1:n
    xmin=range(i,1);
    xmax=range(i,2);
    xcur=(xmin+xmax)/2;
    while xmax-xmin>tol
        if sign(fun(xmin,D))*sign(fun(xcur,D))>0
            xmin=xcur;
        else
            xmax=xcur;
        end
        xcur=(xmin+xmax)/2;
    end
    x(i)=xcur;
end
%--------------------------------------------------------------------------
function y=fun(x,D)
y=D.*x.*Bessel(1,x)-Bessel(0,x);
8楼2009-04-01 16:55:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 zhangyatao 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[公派出国] 售SCI一区文章,我:8.O.551.O.5.4,科目全,可伽急 +3 wsYGJnURYvm6 2026-08-31 3/150 2026-09-01 01:52 by o3EMxHUAQDtS
[硕博家园] 售SCI一区文章,我:8O5.5.1.O5.4,科目全,可伽急 +3 wsYGJnURYvm6 2026-08-31 3/150 2026-09-01 01:40 by o3EMxHUAQDtS
[找工作] 售SCI一区文章,我:8.O.55.1.O.54,科目齐全,可伽急 +3 EZ67DG6CvcKL 2026-08-31 3/150 2026-08-31 22:23 by o3EMxHUAQDtS
[基金申请] 投票:  有多少人是今天查系统知道结果的? +17 爱看书的可乐 2026-08-26 19/950 2026-08-31 21:30 by xiangy672
[基金申请] 哪位高人中了,把查询到的截图贴出来让我看看,让我长长见识 +6 yuleib84 2026-08-26 7/350 2026-08-31 19:46 by 鱼翔浅底1
[基金申请] 面上意见出来了 +12 黄鸟于飞Chao 2026-08-29 23/1150 2026-08-31 18:57 by 黄鸟于飞Chao
[基金申请] 中青基了要发朋友圈吗? +7 349506619 2026-08-28 7/350 2026-08-31 13:39 by 冼亮淀粉酶
[基金申请] 29号明天会评吗 +4 笨笨唐 2026-08-28 4/200 2026-08-31 09:30 by huixian257
[基金申请] 有没有仍没收到信息的 +7 德尚中行 2026-08-27 8/400 2026-08-30 20:52 by purplejack
[基金申请] 麻烦专家们看看评委们的意见(F口面上) +6 gdd2018 2026-08-28 11/550 2026-08-30 08:58 by 超级无敌华子
[基金申请] 国自然评审意见 +13 wangmingqi 2026-08-28 19/950 2026-08-29 10:22 by Poppy1104
[基金申请] 2026年叶企孙基金 +4 bud_bud 2026-08-27 7/350 2026-08-29 07:23 by foolishmani
[基金申请] 系统查不到 +11 董八千 2026-08-26 11/550 2026-08-28 18:06 by Leogzhya
[基金申请] 面上合作单位盖章 +5 ssyjh 2026-08-27 5/250 2026-08-27 20:50 by gdfollow
[基金申请] 2026年8月25日国自然放榜前突然收到列入评审专家邮件,有关系吗? +25 木水思豆 2026-08-25 28/1400 2026-08-26 14:53 by draco1987
[基金申请] 系统进不去 +4 yanglien 2026-08-26 5/250 2026-08-26 11:10 by wenfengw83
[基金申请] 项目信息和经费信息在系统里都可以看到了 +6 wittyboy 2026-08-26 14/700 2026-08-26 10:55 by wittyboy
[基金申请] 国合可查了 +3 paperzjh 2026-08-26 3/150 2026-08-26 10:41 by LemmonTr
[基金申请] 牛来!米来!面来! +8 beefly 2026-08-26 8/400 2026-08-26 08:37 by xuzhipiao
[基金申请] 在坚冰还盖着北海的时候,我看到了怒放的梅花。 (金币+10) +6 ziyangfang 2026-08-25 9/450 2026-08-25 20:26 by huagongfeihu
信息提示
请填处理意见