PPivotQuartz
Сценарии

Сценарии работы с кодом · Точные решения линейных систем

03
Вокруг ваших задач

Конкретная отправная точка

Решите квадратную целочисленную линейную систему до восьми уравнений с помощью точных дробей. Проверьте необходимую перестановку строк и дробный ответ, отклоняя вырожденные системы или несовпадение размеров без изменения ввода.

01

Откройте контекст

Выберите папку проекта и обозначьте нужные файлы или поведение.

02

Опишите изменение

Укажите входные данные, ожидаемый результат и границы, которые нужно сохранить.

03

Изучите работу

Проверьте предлагаемые изменения и команды, прежде чем полагаться на результат.

04

Проверьте результат

Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.

Точные решения линейных систем

Конкретная отправная точка
from fractions import Fraction

def solve_linear(matrix, rhs):
    matrix, rhs = [tuple(row) for row in matrix], tuple(rhs)
    n = len(matrix)
    if not 1 <= n <= 8 or len(rhs) != n or any(len(row) != n for row in matrix):
        raise ValueError("system.shape")
    if any(type(v) is not int or abs(v) > 1000000 for row in matrix for v in row) or any(type(v) is not int or abs(v) > 1000000 for v in rhs):
        raise ValueError("coefficient.range")
    a = [[Fraction(v) for v in row] + [Fraction(rhs[i])] for i, row in enumerate(matrix)]
    for col in range(n):
        pivot = next((r for r in range(col, n) if a[r][col]), None)
        if pivot is None:
            raise ValueError("system.singular")
        a[col], a[pivot] = a[pivot], a[col]
        scale = a[col][col]
        a[col] = [v / scale for v in a[col]]
        for r in range(n):
            if r != col:
                factor = a[r][col]
                a[r] = [x - factor * y for x, y in zip(a[r], a[col])]
    return [row[-1] for row in a]

Пример — отправная точка для реального проекта, а не утверждение, что сгенерированный код уже протестирован. Адаптируйте пути, зависимости и ожидаемое поведение к своему приложению.

Рабочая среда с ИИ для кода

Здесь начинается ваше следующее изменение.

Скачать для Windows ↗