| 查看: 515 | 回复: 2 | |||
| 【奖励】 本帖被评价1次,作者fspdlh增加金币 0.5 个 | |||
| 当前主题已经存档。 | |||
[资源]
【原创】二分法求解多解方程
|
|||
|
看到小木虫里有些人问过求方程某个区间内解的问题,在此,发一个自编的原代码供大家用 参数中fun为方程的字符串,a,b和d分别为搜索解的初值终值和最小区间,tol为精度,如果大家发现程序有什么问题,回帖讨论交流,谢谢。 function x=solvefun(fun,a,b,d,tol) %-------------------------------------------------------------------------- fun=inline(fun); %-------------------------------------------------------------------------- range=a:d:b; if range(end) range=[range,b]; end n=length(range); temp=zeros(1,n); for i=1:n temp(i)=fun(range(i)); end x0=temp(find(temp==0))'; tag=[abs(diff(sign(temp))) 0]; range=range(find(tag==2))'; 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 %-------------------------------------------------------------------------- x=sort([x;x0]); [ Last edited by fspdlh on 2009-5-7 at 08:33 ] |
» 猜你喜欢
售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急
已经有12人回复
售SCI一区T0P文章,我:8.O.55.1.O.5.4,科目全,可+急
已经有18人回复
2027博士申请-临床检验诊断学、病原生物学、微生物方向
已经有4人回复
售SCI-T0P文章,我:8O.5.5.1.O.54,科目齐全,可+急
已经有17人回复
售SCI一区T0P文章,我:8.O.55.1.O.54,科目齐全,可+急
已经有10人回复
售SCI文章,我:8O.5.5.1O.54,科目全,可十急
已经有22人回复
越来越担心硕士毕业后没有竞争力了
已经有14人回复
论文的挂名怎么评判贡献?基金申请中,排名第一的挂名文章
已经有3人回复
申博自荐 2篇一区TOP+1篇EI+2公开发明专利 2027博士申请
已经有3人回复
闲聊
已经有6人回复
应用实例
|
求解正弦函数 >> solvefun('sin(x)',-30,30,1,1e-5) ans = -28.2743 -25.1327 -21.9911 -18.8496 -15.7080 -12.5664 -9.4248 -6.2832 -3.1416 0 3.1416 6.2832 9.4248 12.5664 15.7080 18.8496 21.9911 25.1327 28.2743 问题来源:http://muchong.com/bbs/viewthread.php?tid=1251344 >> solvefun('x.*bessel(1,x)-bessel(0,x)',0,100,1,1e-5) 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 问题来源:http://muchong.com/bbs/viewthread.php?tid=1313419 >> solvefun('cos(x)*cosh(x)-1',0,100,1,1e-5) ans = 0 4.7300 7.8532 10.9956 14.1372 17.2788 20.4204 23.5619 26.7035 29.8451 32.9867 36.1283 39.2699 42.4115 45.5531 48.6947 51.8363 54.9779 58.1195 61.2611 64.4026 67.5442 70.6858 73.8274 76.9690 80.1106 83.2522 86.3938 89.5354 92.6770 95.8186 98.9602 [ Last edited by fspdlh on 2009-5-7 at 08:38 ] |
2楼2009-05-07 08:34:59
3楼2009-05-08 22:43:53










回复此楼
