Как проверить, независимы ли m n-sized векторы линейно?

Как насчет этого?

<?php $columnCasecheck = $columnCasecheck === true ? '-3' : '-4'; ?>

<div class="col-sm<?=$columnCasecheck?>>value</div>
20
задан Bill the Lizard 19 October 2011 в 11:16
поделиться

5 ответов

Создайте матрицу векторов (одна строка на вектор) и выполните Исключение Гаусса на этой матрице. Если какая-либо из матричных строк уравновешивается, они не линейно независимы.

тривиальный случай - когда m> n, в этом случае, они не могут быть линейно независимыми.

22
ответ дан 30 November 2019 в 00:05
поделиться

Создайте матрицу M, чьи строки являются векторами и определяют разряд M. Если разряд M является меньше чем m (количество векторов) затем существует линейная зависимость. В алгоритме для определения разряда M можно остановить процедуру, как только Вы получаете одну строку нулей, но выполнение алгоритма к завершению имеет добавленное золотое дно обеспечения размера набора охвата векторов. О, и алгоритмом для определения разряда M является просто Исключение Гаусса.

Заботятся для числовой нестабильности. Посмотрите предупреждение в начале главы два в Числовых Рецептах.

7
ответ дан 30 November 2019 в 00:05
поделиться

Если вычислительная мощность не является проблемой, вероятно, лучший способ состоит в том, чтобы найти сингулярные значения матрицы. В основном необходимо найти собственные значения M'*M и посмотреть на отношение самого большого к самому маленькому. Если отношение не является очень большим, векторы независимы.

1
ответ дан 30 November 2019 в 00:05
поделиться

Другой способ проверить, что m векторы - строки линейно независимы, когда он вставляется в матрицу M размера mxn, состоит в том, чтобы вычислить

det(M * M^T)

т.е. детерминант mxm квадратной матрицы. Это будет нуль, если и только если M имеет некоторые зависимые строки. Однако Исключение Гаусса должно быть в целом быстрее.

1
ответ дан 30 November 2019 в 00:05
поделиться

Если m<n, необходимо будет сделать некоторую операцию на них (существует несколько возможностей: Исключение Гаусса, ортогонализация, и т.д., почти любое преобразование, которое может использоваться для решения уравнений, сделают), и проверьте результат (например, Исключение Гаусса => нулевая строка или столбец, ортогонализация => нулевой вектор, SVD => обнуляют исключительное число)

Однако примечание, которое этим вопросом является плохой вопрос для программиста спросить, и этой проблемой является плохая проблема для программы для решения. Поэтому каждый линейно зависимый набор n<m векторы имеют различный набор линейно независимых векторов поблизости (например, проблема численно нестабильна)

3
ответ дан 30 November 2019 в 00:05
поделиться
Другие вопросы по тегам:

Похожие вопросы: