Как насчет этого?
<?php $columnCasecheck = $columnCasecheck === true ? '-3' : '-4'; ?>
<div class="col-sm<?=$columnCasecheck?>>value</div>
Создайте матрицу векторов (одна строка на вектор) и выполните Исключение Гаусса на этой матрице. Если какая-либо из матричных строк уравновешивается, они не линейно независимы.
тривиальный случай - когда m> n, в этом случае, они не могут быть линейно независимыми.
Создайте матрицу M
, чьи строки являются векторами и определяют разряд M
. Если разряд M
является меньше чем m
(количество векторов) затем существует линейная зависимость. В алгоритме для определения разряда M
можно остановить процедуру, как только Вы получаете одну строку нулей, но выполнение алгоритма к завершению имеет добавленное золотое дно обеспечения размера набора охвата векторов. О, и алгоритмом для определения разряда M
является просто Исключение Гаусса.
Заботятся для числовой нестабильности. Посмотрите предупреждение в начале главы два в Числовых Рецептах.
Если вычислительная мощность не является проблемой, вероятно, лучший способ состоит в том, чтобы найти сингулярные значения матрицы. В основном необходимо найти собственные значения M'*M
и посмотреть на отношение самого большого к самому маленькому. Если отношение не является очень большим, векторы независимы.
Другой способ проверить, что m векторы - строки линейно независимы, когда он вставляется в матрицу M размера mxn, состоит в том, чтобы вычислить
det(M * M^T)
т.е. детерминант mxm квадратной матрицы. Это будет нуль, если и только если M имеет некоторые зависимые строки. Однако Исключение Гаусса должно быть в целом быстрее.
Если m<n
, необходимо будет сделать некоторую операцию на них (существует несколько возможностей: Исключение Гаусса, ортогонализация, и т.д., почти любое преобразование, которое может использоваться для решения уравнений, сделают), и проверьте результат (например, Исключение Гаусса => нулевая строка или столбец, ортогонализация => нулевой вектор, SVD => обнуляют исключительное число)
Однако примечание, которое этим вопросом является плохой вопрос для программиста спросить, и этой проблемой является плохая проблема для программы для решения. Поэтому каждый линейно зависимый набор n<m
векторы имеют различный набор линейно независимых векторов поблизости (например, проблема численно нестабильна)