def __init__(self): super().__init__() # Корінь знаходиться на проміжку [1, 2], перша похідна функції x = (3-x)^(1/5) на заданому проміжку має максимум 1/5, в якості першого наближення обираємо лівий край проміжку self.a = Q(1) self.b = Q(2) self.x0 = Q(1) self.q = Q(1, 5) self.name = "Метод простих ітерацій"
def __init__(self): super().__init__() # Корінь знаходиться на проміжку [1, 6/5], m[1] = 6, M[2] = 864/25 self.a = Q(1) self.b = Q(6, 5) self.x0 = Q(6, 5) self.q = Q(72, 125) self.name = "Метод Н`ютона"
def next_fraction(q: Q) -> Q: assert 0 <= q.numerator < q.denominator dq = Q(1, q.denominator) while True: q += dq if q >= 1: return Q(1, dq.denominator + 1) if q.denominator == dq.denominator: return q
def new(self, size: int = 0) -> Q: if self.pool: base = self.pool.pop() else: base = self.next_base self.next_base = next_fraction(self.next_base) index = fraction_to_index(base) while len(self.stacks) <= index: self.stacks.append(None) self.stacks[index] = size * [Q(0)] return base
def load_static(process, operand): value = process.memory[Q(operand)] process.push_data(value)