Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- from pylab import *
- def f(x):
- return x**4-5*cos(x)-2
- x=linspace(-2,2,100)
- plot(x, f(x), 'r-')
- ylabel('y-os')
- xlabel('x-os')
- grid()
- show()
- #Iz grafa se vidi da postoje dvije nultocke:
- #jedna je unutar segmenta [-1.5,-1], a druga unutar segmenta [1,1.5].
- #Metoda bisekcije
- print 'Metoda bisekcije: \n'
- def Bisekcija(a,b,eps,MaxIteracija=30):
- xi=(a+b)/2.0
- i=0
- while (b-a)/2.0>eps:
- if f(xi)==0:
- return xi,i
- elif f(a)*f(xi)<0:
- b=xi
- else:
- a=xi
- xi=(a+b)/2.0
- i=i+1
- if i==MaxIteracija:
- print 'Rjesenje na zadanu tocnost nije nadjeno u zadanom broju iteracija.'
- break
- return xi,i
- xn,i=Bisekcija(-1.5,-1,1.e-5)
- print 'Rjesenje1:'
- print 'x%s=%s' % (i,xn)
- print '\n'
- xm,j=Bisekcija(1,1.5,1.e-5)
- print 'Rjesenje2:'
- print 'x%s=%s' % (j,xm)
- print '\n'
- x=linspace(-2,2,100)
- plot(x, f(x), 'r-',xn,f(xn),'m^',xm,f(xm),'m^')
- ylabel('y-os')
- xlabel('x-os')
- grid()
- show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement