Pull to refresh

Comments 12

Простите, а обычный lapack с правильным выбором ведущего элемента не дает хорошее решение?

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

Выбор ведущего элемента полностью закрывает вопрос. И еще: метод Гаусса на Питоне это будет очень непроизводительно, поэтому численные молотилки обычно пишут на компилируемых языках дабы компилятор хорошо заоптимизировал код с использованием векторных (sse, avx) и прочих инструкций.

И зачем, вообще, столько принтскринов с абсолютно бесполезной информацией?

Статья написана первокурсником. Не судите строго, но за критику спасибо

Не знаю каково мнение остальных, но мне кажется, что статья не уровня хабра. Ибо статья ничего кроме общеизвестных простых сведений из численных методов не содержит. Тогда зачем она?

Статья написана первокурсником.

Поэтому, вероятно, никто и не ждёт прорывных открытий в данной области, и даже знакомства с уж очень специальной литературой. Но с общедоступной и понятно написанной литературой бегло ознакомиться стоило бы, на мой взгляд. Тема не нова. И если в заголовок вынесено повышение точности при плохой обусловленности, то ждёшь чего-то специально для этого случая. Вот протянул руку и снял с полки известный в вычислительном мире труд Форсайта, Малькольма и Моулера "Машинные методы математических вычислений", М.: Мир, 1980 аж год. Тут и про плохо обусловленные системы, и про метод сингулярного разложения (SVD), и соответствующие тексты программ приложены. Всё просто и понятно. С тех пор, разумеется, много чего написано по этому поводу, но хотя бы это. Сам по себе метод Гаусса, даже с выбором ведущего элемента, проблему, увы, не решает.

Плохо обусловленные СЛАУ, обычно решаются принципиально другими методами:

https://en.wikipedia.org/wiki/Ridge_regression#Tikhonov_regularization

https://en.wikipedia.org/wiki/Moore–Penrose_inverse#Singular_value_decomposition_(SVD)

Это не проблема точности, а того что ранг матрицы может быть меньше размерности системы(rank-deficient). И идея решать подобные системы без регуляризации, изначально не очень хорошая, так как решения будет "бросать туда-сюда".

именно так. Я бы еще изменил слово "ранг" на "численный ранг" (также используются "numerical rank" или "effective rank"), чтобы подчеркнуть потенциальную проблему с рангом плохообусловленных систем при представлении в числах с плавающей запятой.

сли cond(A)≥10^3, то матрицу можно считать плохообусловленной.

Но ведь ваша норма — это сумма элементов и при увеличении n число будет расти. |I(n)| = n — для единичной матрицы n*n ваша норма дает n, а число обусловленности будет n^2.


Надо где-то нормировать, или границу "обусловленности" задовать разную для разных размеров матриц.


Еще комментарий: код картинками вставлять — стыдно дложно быть. Потрудитесь его скопипастить в редактор. Хабр поддерживает отображение кода с подсветкой.

Там считается норма, как максимальная сумма вдоль столбца или строки, соответственно для единично матрицы будет 1.

Что-то я был уверен, что там сумма максимумов. Перепроверил — оказалось, что я криво прочитал. Был не прав.

Sign up to leave a comment.

Articles