Если вы специально не планируете реализовать свою собственную, вам следует использовать оператор обратной косой черты Matlab (mldivide
) или, если вам нужны коэффициенты, lu
.Обратите внимание, что mldivide может делать больше, чем исключение по Гауссу (например, он делает линейные наименьшие квадраты, когда это необходимо).
Алгоритмы, используемые mldivide
и lu
, взяты из библиотек C и Fortran и вашей собственной реализациив Matlab никогда не будет так быстро.Однако, если вы полны решимости использовать собственную реализацию и хотите, чтобы она была быстрее, одним из вариантов является поиск способов векторизации вашей реализации (возможно, начните здесь ).
Еще одинНа что следует обратить внимание: реализация из этого вопроса не выполняет никакого поворота , поэтому его числовая стабильность, как правило, будет хуже, чем у реализации, которая выполняет поворот, и даже для некоторых невырожденных матриц не получится.
Существуют разные варианты исключения Гаусса, но все они являются алгоритмами O ( n 3 ).Если какой-либо из подходов лучше, чем другой, зависит от вашей конкретной ситуации и вам нужно больше изучить.