Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function(c,err,yc) = bisection(a, b, delta)
- ya = fun1(a);
- yb = fun1(b);
- if(ya * yb > 0)
- break;
- endif
- max1= 1 + round( (log(b-a) - log(delta)) / log(2));
- for k = 1:max1
- c = ( a + b ) / 2;
- yc = fun1(c);
- if (yc == 0)
- a = c;
- b = c;
- elseif(yb * yc > 0)
- b = c;
- yb = yc;
- else
- a = c;
- ya = yc;
- endif
- if(b - a < delta)
- break;
- endif
- endfor
- c = (a + b)/2;
- err = abs(b - a);
- yc = fun1(c);
- endfunction
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement