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):
- if len(a) == 1:
- #print(Interval(self.min,self.max))
- return(Interval(self.min,self.max) * (Interval(a[0],a[0])))
- else:
- #print(Interval(self.min,self.max))
- #print(a[0])
- return(Interval(a[0],a[0]) + (Interval(self.min,self.max) * (self.evalPolynomial(a[1:]))))
- def findZeros(a,I,zeros):
- if I.evalPolynomial(a).contains(0) == False:
- return None
- if I.length() < 0.000001 and I.evalPolynomial(a).contains(0):
- #k = I.mid
- zeros.append(I.mid)
- return None
- 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(Interval(0,4).evalPolynomial([-6,11,-6,1]).contains(0))
- print(Interval(0,2).evalPolynomial([-6,11,-6,1]).contains(0))
- print(Interval(0,1).evalPolynomial([-6,11,-6,1]).contains(0))
- print(Interval(0,0.5).evalPolynomial([-6,11,-6,1]).contains(0))
- print("Das Interval [0,0.5] enthält keine Nullstelle, daher springt er in die andere Hälfte, sprich [0.5,1] hier tritt ein 'float not callable Fehler auf'")
- #print(findZeros([-6,11,-6,1],Interval(0,4),[]))
- print("XDD")
- print(Interval(0.9999990463256836,1.0).evalPolynomial([-6,11,-6,1]))
- #print(b)
- """
- 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(Interval(0,4).evalPolynomial([-6,11,-6,1]).contains(0))
- print(Interval(0,2).evalPolynomial([-6,11,-6,1]).contains(0))
- print(Interval(0,1).evalPolynomial([-6,11,-6,1]).contains(0))
- print(Interval(0,0.5).evalPolynomial([-6,11,-6,1]).contains(0))
- 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(Interval(3,4).evalPolynomial([-6,11,-6,1]).contains(0))
- print(Interval(0,1).evalPolynomial([-6,11,-6,1]))
- print(Interval(1,2).evalPolynomial([-6,11,-6,1]))
- print(Interval(2,3).evalPolynomial([-6,11,-6,1]))
- print(Interval(3,4).evalPolynomial([-6,11,-6,1]))
- print("4")
- print(Interval(0,0.5).evalPolynomial([-6,11,-6,1]).contains(0))
- print(Interval(0.5,0.9).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