| 查看: 417 | 回复: 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 ] |
» 猜你喜欢
302分 085601求调剂推荐
已经有6人回复
318求调剂
已经有7人回复
生物学308分求调剂(一志愿华东师大)
已经有6人回复
0703化学调剂325分
已经有8人回复
生物工程求调剂
已经有5人回复
290求调剂085701
已经有10人回复
081700学硕,323分,一志愿中国海洋大学求调剂学校
已经有14人回复
求调剂
已经有3人回复
283分求调剂
已经有8人回复
295求调剂
已经有9人回复
应用实例
|
求解正弦函数 >> 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














回复此楼
