24小时热门版块排行榜    

查看: 1561  |  回复: 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 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[论文投稿] 小白求助 投论文要求的highlights应该如何写 5+3 l1963982152 2026-08-29 4/200 2026-09-01 09:04 by 北京莱茵编辑
[基金申请] 面上函评意见出来了,像什么等级? 20+3 Tsingking1 2026-08-27 14/700 2026-09-01 08:29 by 尼古拉斯小虫
[基金申请] 国社科又开始会评了,不知道这次命运如何 +7 雨打竹帘 2026-08-30 11/550 2026-08-31 23:16 by hittle2008
[基金申请] 基金未中,这种答复是模板吗? +6 zhaosm1982 2026-08-27 7/350 2026-08-31 21:18 by qdxxmc
[基金申请] 面上意见出来了 +12 黄鸟于飞Chao 2026-08-29 23/1150 2026-08-31 18:57 by 黄鸟于飞Chao
[文学芳草园] 梦想 +5 myrtle 2026-08-26 5/250 2026-08-31 14:40 by hahaboy
[基金申请] 29号明天会评吗 +4 笨笨唐 2026-08-28 4/200 2026-08-31 09:30 by huixian257
[基金申请] 国自然面上复盘~欢迎讨论 (金币+15) +15 晴天加油 2026-08-26 16/800 2026-08-29 18:28 by symmetry
[基金申请] 国自然评审意见 +13 wangmingqi 2026-08-28 19/950 2026-08-29 10:22 by Poppy1104
[基金申请] 为什么资助数各大高校都创新高,自己申请怎么就这么难 +12 Kittylucky 2026-08-27 13/650 2026-08-29 00:04 by superceng
[基金申请] 系统查不到 +11 董八千 2026-08-26 11/550 2026-08-28 18:06 by Leogzhya
[基金申请] 基金系统什么内容也没有 30+4 winsaint 2026-08-27 9/450 2026-08-28 11:06 by maolC
[基金申请] 怎么查啊 +6 huang1991js 2026-08-26 6/300 2026-08-28 08:42 by winsaint
[基金申请] 面上合作单位盖章 +5 ssyjh 2026-08-27 5/250 2026-08-27 20:50 by gdfollow
[基金申请] 为什么 国际(地区)合作与交流项目 没有放榜? 10+3 majunge000 2026-08-26 11/550 2026-08-27 08:42 by 北京莱茵编辑
[基金申请] 我不理解! +15 Edward_pc 2026-08-26 23/1150 2026-08-26 20:34 by zzuzxg
[基金申请] 出来了 +9 trojank 2026-08-26 9/450 2026-08-26 14:25 by 宝贝虫子
[基金申请] 国合里面能看到了 +7 一怀馨秋 2026-08-26 7/350 2026-08-26 11:23 by zhaosm1982
[基金申请] 国合可查了 +3 paperzjh 2026-08-26 3/150 2026-08-26 10:41 by LemmonTr
[基金申请] 某些机构,以效率低为荣,以效率低作为存在感 +9 yuleib84 2026-08-25 10/500 2026-08-25 17:14 by alexon
信息提示
请填处理意见