Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import math
- from dataclasses import dataclass
- @dataclass
- class Approximate:
- ai: float; af: float
- da: float; n : int
- # Default values
- aa: float = 0
- ei: float = -1
- a : float = 0
- e : float = 0
- i : int = 0
- done: bool = False
- stop: bool = False
- def step(self):
- if (self.ei < 0) or (self.ei > self.e):
- self.ei = self.e
- self.aa = self.a
- if (self.stop):
- self.i += 1
- if (self.i >= self.n):
- self.done = True
- self.a = self.aa
- return # Max iter
- # Restrict to window around 'solution'
- self.ai = self.aa - self.da
- self.af = self.aa + self.da
- self.a = self.ai
- # Increase accuracy
- self.da *= 0.1
- self.ai += self.da
- self.af -= self.da
- self.stop = False
- else:
- # Probe some points in [ai,af] with step da
- self.a = self.a + self.da
- if (self.a > self.af):
- self.a = self.af
- self.stop = True
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement