Advertisement
encoree1996

bisekcja

Mar 9th, 2016
164
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MatLab 0.71 KB | None | 0 0
  1. function [  ] = bisekcja(  )
  2. d = 10^(-6);
  3. func = input('Podaj wzor funkcji: ', 's');
  4. f = inline(func);
  5. oa = input('Podaj poczatek przedzialu: ');
  6. ob = input('Podaj koniec przedzialu: ');
  7. a = oa;
  8. b = ob;
  9. i = 0;
  10. while abs(a-b) > d
  11.    i = i+1;
  12.    c = (a+b)/2;
  13.    if abs(f(c)) < d
  14.        break
  15.    end
  16.    if f(a)*f(c) < 0
  17.        b = c;
  18.    else
  19.        if f(b)*f(c) < 0
  20.         a = c;
  21.        else
  22.            sprintf('funkcja f(x) = %s nie ma miejsca zerowego w zadanym przedziale [%f, %f] | f(b)*f(c) > 0 | f(b) = %.15f, f(c) = %.15f | ilosc przejsc: %d',func,oa,ob, f(b),f(c),i)
  23.            return
  24.        end
  25.    end
  26. end
  27.  
  28. sprintf('f(x) = %s == 0 <==> x == %.15f | Ilosc przejsc: %d',func,c, i)
  29. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement