コード例 #1
0
 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 = "Метод простих ітерацій"
コード例 #2
0
 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 = "Метод Н`ютона"
コード例 #3
0
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
コード例 #4
0
ファイル: memory.py プロジェクト: elemel/quest
    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
コード例 #5
0
ファイル: operations.py プロジェクト: elemel/quest
def load_static(process, operand):
    value = process.memory[Q(operand)]
    process.push_data(value)