Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #import sys
- #sys.setrecursionlimit(10000000)
- class Interval:
- def __init__(self,minimum,maximum):
- self.min = minimum
- self.max = maximum
- def length(self):
- self.length = self.max - self.min
- return(self.length)
- def mid(self):
- self.mid = (self.min + self.max) / 2
- return(self.mid)
- def contains(self,x):
- if x >= self.min and x <= self.max:
- return True
- else:
- return False
- #def °(self,other,x=0):
- # if self.contains(x) or other.contains(x):
- #d return True
- def __add__(self,other):
- newmax = self.max + other.max
- newmin = self.min + other.min
- return(Interval(newmin,newmax))
- def __sub__(self,other):
- newmin = self.min - other.max
- newmax = self.max - other.min
- return(Interval(newmin,newmax))
- def __repr__(self):
- return("[" + str(self.min) + "," + str(self.max) + "]")
- def __mul__(self,other):
- newmin = min(self.max * other.min,self.max*other.max,self.min*other.min,self.min*other.max)
- newmax = max(self.max * other.min,self.max*other.max,self.min*other.min,self.min*other.max)
- return(Interval(newmin,newmax))
- def evalPolynomial(self,a):
- #k = Interval(self.min,self.max)
- if len(a) == 1:
- return(Interval(self.min,self.max) * (Interval(a[0],a[0])))
- else:
- return(Interval(a[0],a[0]) + (self.evalPolynomial(a[1:])))
- def findZeros(a,I,zeros=[]):
- if not I.evalPolynomial(a).contains(0):
- return
- if I.length() <= 0.000001 and I.evalPolynomial(a).contains(0):
- k = I.mid
- zeros.append(k)
- print("xd")
- return
- findZeros(a,Interval(I.min,I.mid()),zeros)
- findZeros(a,Interval(I.mid(),I.max),zeros)
- return(zeros)
- a = Interval(-0.0000001,0.0000000001)
- b = Interval(12,26)
- d = [1,0,5,2,13,9]
- dd = Interval(1,1)
- c = b.evalPolynomial(d)
- print(Interval(0,2).evalPolynomial([-6,11,-6,1]).contains(0))
- print(Interval(2,4).evalPolynomial([-6,11,-6,1]).contains(0))
- print(findZeros([-6.11,-6,1],Interval(0,4)))
- """
- liste = [1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]
- def listenteiler(a):
- if len(a) == 1:
- print(a[0])
- return
- mitte = len(a)//2
- listenteiler(a[:mitte])
- listenteiler(a[mitte:])
- listenteiler(liste)
- """
- print("1")
- print(Interval(0,4).evalPolynomial([-6,11,-6,1]).contains(0))
- print("2")
- print(Interval(0,2).evalPolynomial([-6,11,-6,1]).contains(0))
- print(Interval(2,4).evalPolynomial([-6,11,-6,1]).contains(0))
- print("3")
- print(Interval(0,1).evalPolynomial([-6,11,-6,1]).contains(0))
- print(Interval(1,2).evalPolynomial([-6,11,-6,1]).contains(0))
- print(Interval(2,3).evalPolynomial([-6,11,-6,1]).contains(0))
- print("4")
- print(Interval(0,0.5).evalPolynomial([-6,11,-6,1]).contains(0))
- print(Interval(3,4).evalPolynomial([-6,11,-6,1]).contains(0))
- print(Interval(0.5,1).evalPolynomial([-6,11,-6,1]).contains(0))
- print(Interval(1,1.5).evalPolynomial([-6,11,-6,1]).contains(0))
- print(Interval(1.5,2).evalPolynomial([-6,11,-6,1]).contains(0))
- print(Interval(2,2.5).evalPolynomial([-6,11,-6,1]).contains(0))
- print(Interval(2.5,3).evalPolynomial([-6,11,-6,1]).contains(0))
- print(Interval(3,3.5).evalPolynomial([-6,11,-6,1]).contains(0))
- print(Interval(3.5,4).evalPolynomial([-6,11,-6,1]).contains(0))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement