Advertisement
Guest User

Untitled

a guest
Jun 17th, 2019
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 4.55 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.         if len(a) == 1:
  47.             #print(Interval(self.min,self.max))
  48.             return(Interval(self.min,self.max) * (Interval(a[0],a[0])))
  49.         else:
  50.             #print(Interval(self.min,self.max))
  51.             #print(a[0])
  52.             return(Interval(a[0],a[0]) + (Interval(self.min,self.max) * (self.evalPolynomial(a[1:]))))
  53.            
  54. def findZeros(a,I,zeros):
  55.     if I.evalPolynomial(a).contains(0) == False:
  56.         return None
  57.     if I.length() < 0.000001 and I.evalPolynomial(a).contains(0):
  58.         #k = I.mid
  59.         zeros.append(I.mid)
  60.         return None
  61.     findZeros(a,Interval(I.min,I.mid()),zeros)
  62.     findZeros(a,Interval(I.mid,I.max),zeros)
  63.     return(zeros)
  64.        
  65.            
  66.  
  67. a = Interval(-0.0000001,0.0000000001)
  68. b = Interval(12,26)
  69. d = [1,0,5,2,13,9]
  70. dd = Interval(1,1)
  71. #c = b.evalPolynomial(d)
  72. #print(Interval(0,2).evalPolynomial([-6,11,-6,1]).contains(0))
  73. #print(Interval(2,4).evalPolynomial([-6,11,-6,1]).contains(0))
  74. print(Interval(0,4).evalPolynomial([-6,11,-6,1]).contains(0))
  75. print(Interval(0,2).evalPolynomial([-6,11,-6,1]).contains(0))
  76. print(Interval(0,1).evalPolynomial([-6,11,-6,1]).contains(0))
  77. print(Interval(0,0.5).evalPolynomial([-6,11,-6,1]).contains(0))
  78. 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'")
  79. #print(findZeros([-6,11,-6,1],Interval(0,4),[]))
  80. print("XDD")
  81. print(Interval(0.9999990463256836,1.0).evalPolynomial([-6,11,-6,1]))
  82. #print(b)
  83. """
  84. 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]
  85. def listenteiler(a):
  86.    if len(a) == 1:
  87.        print(a[0])
  88.        return
  89.    mitte = len(a)//2
  90.    listenteiler(a[:mitte])
  91.    listenteiler(a[mitte:])
  92. listenteiler(liste)
  93. """
  94. """
  95. print(Interval(0,4).evalPolynomial([-6,11,-6,1]).contains(0))
  96. print(Interval(0,2).evalPolynomial([-6,11,-6,1]).contains(0))
  97. print(Interval(0,1).evalPolynomial([-6,11,-6,1]).contains(0))
  98. print(Interval(0,0.5).evalPolynomial([-6,11,-6,1]).contains(0))
  99.  
  100. print("1")
  101. print(Interval(0,4).evalPolynomial([-6,11,-6,1]).contains(0))
  102. print("2")
  103. print(Interval(0,2).evalPolynomial([-6,11,-6,1]).contains(0))
  104. print(Interval(2,4).evalPolynomial([-6,11,-6,1]).contains(0))
  105.  
  106. print("3")
  107. print(Interval(0,1).evalPolynomial([-6,11,-6,1]).contains(0))
  108. print(Interval(1,2).evalPolynomial([-6,11,-6,1]).contains(0))
  109. print(Interval(2,3).evalPolynomial([-6,11,-6,1]).contains(0))
  110. print(Interval(3,4).evalPolynomial([-6,11,-6,1]).contains(0))
  111.  
  112. print(Interval(0,1).evalPolynomial([-6,11,-6,1]))
  113. print(Interval(1,2).evalPolynomial([-6,11,-6,1]))
  114. print(Interval(2,3).evalPolynomial([-6,11,-6,1]))
  115. print(Interval(3,4).evalPolynomial([-6,11,-6,1]))
  116.  
  117. print("4")
  118. print(Interval(0,0.5).evalPolynomial([-6,11,-6,1]).contains(0))
  119. print(Interval(0.5,0.9).evalPolynomial([-6,11,-6,1]).contains(0))
  120. print(Interval(1,1.5).evalPolynomial([-6,11,-6,1]).contains(0))
  121. print(Interval(1.5,2).evalPolynomial([-6,11,-6,1]).contains(0))
  122. print(Interval(2,2.5).evalPolynomial([-6,11,-6,1]).contains(0))
  123. print(Interval(2.5,3).evalPolynomial([-6,11,-6,1]).contains(0))
  124. print(Interval(3,3.5).evalPolynomial([-6,11,-6,1]).contains(0))
  125. print(Interval(3.5,4).evalPolynomial([-6,11,-6,1]).contains(0))
  126. """
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement