Advertisement
Guest User

Untitled

a guest
Jun 16th, 2019
104
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 3.15 KB | None | 0 0
  1. #import sys
  2. #sys.setrecursionlimit(10000000)
  3.  
  4. class Interval:
  5.     def __init__(self,minimum,maximum):
  6.         self.min = minimum
  7.         self.max = maximum
  8.    
  9.     def length(self):
  10.         self.length = self.max - self.min
  11.         return(self.length)
  12.    
  13.     def mid(self):
  14.         self.mid = (self.min + self.max) / 2
  15.         return(self.mid)
  16.    
  17.     def contains(self,x):
  18.         if x >= self.min and x <= self.max:
  19.             return True
  20.         else:
  21.             return False
  22.    
  23.     #def °(self,other,x=0):
  24.     #   if self.contains(x) or other.contains(x):
  25.     #d      return True
  26.    
  27.     def __add__(self,other):
  28.         newmax = self.max + other.max
  29.         newmin = self.min + other.min
  30.         return(Interval(newmin,newmax))
  31.    
  32.     def __sub__(self,other):
  33.         newmin = self.min - other.max
  34.         newmax = self.max - other.min
  35.         return(Interval(newmin,newmax))
  36.    
  37.     def __repr__(self):
  38.         return("[" + str(self.min) + "," + str(self.max) + "]")
  39.        
  40.     def __mul__(self,other):
  41.         newmin = min(self.max * other.min,self.max*other.max,self.min*other.min,self.min*other.max)
  42.         newmax = max(self.max * other.min,self.max*other.max,self.min*other.min,self.min*other.max)
  43.         return(Interval(newmin,newmax))
  44.            
  45.     def evalPolynomial(self,a):
  46.         #k = Interval(self.min,self.max)
  47.         if len(a) == 1:
  48.             return(Interval(self.min,self.max) * (Interval(a[0],a[0])))
  49.         else:
  50.             return(Interval(a[0],a[0]) + (self.evalPolynomial(a[1:])))
  51.            
  52. def findZeros(a,I,zeros=[]):
  53.     if not I.evalPolynomial(a).contains(0):
  54.         return
  55.     if I.length() <= 0.000001 and I.evalPolynomial(a).contains(0):
  56.         k = I.mid
  57.         zeros.append(k)
  58.         print("xd")
  59.         return
  60.     findZeros(a,Interval(I.min,I.mid()),zeros)
  61.     findZeros(a,Interval(I.mid(),I.max),zeros)
  62.     return(zeros)
  63.        
  64.            
  65.  
  66. a = Interval(-0.0000001,0.0000000001)
  67. b = Interval(12,26)
  68. d = [1,0,5,2,13,9]
  69. dd = Interval(1,1)
  70. c = b.evalPolynomial(d)
  71. print(Interval(0,2).evalPolynomial([-6,11,-6,1]).contains(0))
  72. print(Interval(2,4).evalPolynomial([-6,11,-6,1]).contains(0))
  73. print(findZeros([-6.11,-6,1],Interval(0,4)))
  74.  
  75. """
  76. 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]
  77. def listenteiler(a):
  78.     if len(a) == 1:
  79.         print(a[0])
  80.         return
  81.     mitte = len(a)//2
  82.     listenteiler(a[:mitte])
  83.     listenteiler(a[mitte:])
  84. listenteiler(liste)
  85. """
  86. print("1")
  87. print(Interval(0,4).evalPolynomial([-6,11,-6,1]).contains(0))
  88. print("2")
  89. print(Interval(0,2).evalPolynomial([-6,11,-6,1]).contains(0))
  90. print(Interval(2,4).evalPolynomial([-6,11,-6,1]).contains(0))
  91. print("3")
  92. print(Interval(0,1).evalPolynomial([-6,11,-6,1]).contains(0))
  93. print(Interval(1,2).evalPolynomial([-6,11,-6,1]).contains(0))
  94. print(Interval(2,3).evalPolynomial([-6,11,-6,1]).contains(0))
  95. print("4")
  96. print(Interval(0,0.5).evalPolynomial([-6,11,-6,1]).contains(0))
  97. print(Interval(3,4).evalPolynomial([-6,11,-6,1]).contains(0))
  98. print(Interval(0.5,1).evalPolynomial([-6,11,-6,1]).contains(0))
  99. print(Interval(1,1.5).evalPolynomial([-6,11,-6,1]).contains(0))
  100. print(Interval(1.5,2).evalPolynomial([-6,11,-6,1]).contains(0))
  101. print(Interval(2,2.5).evalPolynomial([-6,11,-6,1]).contains(0))
  102. print(Interval(2.5,3).evalPolynomial([-6,11,-6,1]).contains(0))
  103. print(Interval(3,3.5).evalPolynomial([-6,11,-6,1]).contains(0))
  104. print(Interval(3.5,4).evalPolynomial([-6,11,-6,1]).contains(0))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement