Решение n линейного уравнения
Я пытаюсь решить n линейных уравнений с n переменных. Я использовал правило Крамера, но в тех случаях, когда определитель равен нулю, он не выполнялся. Как подойти к этой проблеме?
Я использую язык c.
Также мое линейное уравнение имеет форму:
за n = 3
:
- x + y + z = a
x - y + z = b
x + y - z = c
за n = 2
:
- x + y = a
x - y = b
Я не могу продолжать дальше.
3 ответа
При решении с помощью крамера, если определитель равен нулю, у вас есть два случая:
- по крайней мере одна переменная имеет ненулевой определитель: решения не существует
определитель для всех переменных равен нулю: тогда у вас есть бесконечное количество решений.
в последнем случае вы можете найти ответ по одной из переменных.
Если определитель равен нулю, то система является вырожденной, что означает, что либо нет решений, либо существует бесконечное число решений. Рассмотрим ваш второй пример:
-x+y=a
x-y=b
Мы можем переписать это как
x-y=-a
x-y=b
Так что либо b=-a
в этом случае любая пара (x,x-b)
это решение, или иначе b!=-a
в этом случае нет решений.
В Ax = b
когда определитель A
равно нулю нет единственного решения. В частности, если b
0 - бесконечно много решений. Также возможно, что никакого решения не существует.
Ваши варианты:
- пометить это как ошибку
- возвращая
x
что сводит к минимуму разницу междуAx
а такжеb