Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function [ ] = bisekcja( )
- d = 10^(-6);
- func = input('Podaj wzor funkcji: ', 's');
- f = inline(func);
- oa = input('Podaj poczatek przedzialu: ');
- ob = input('Podaj koniec przedzialu: ');
- a = oa;
- b = ob;
- i = 0;
- while abs(a-b) > d
- i = i+1;
- c = (a+b)/2;
- if abs(f(c)) < d
- break
- end
- if f(a)*f(c) < 0
- b = c;
- else
- if f(b)*f(c) < 0
- a = c;
- else
- 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)
- return
- end
- end
- end
- sprintf('f(x) = %s == 0 <==> x == %.15f | Ilosc przejsc: %d',func,c, i)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement