Вопрос

Я пытаюсь написать функцию, которая дает единственное решение недостаточно представленной системы уравнений (например,матрица, описывающая систему, шире, чем ее высота).Чтобы сделать это, я искал в документации LAPACK способ приведения матрицы к форме уменьшенного эшелона, аналогично функции rref() в калькуляторах Mathematica и TI.Самое близкое, с чем я столкнулся, было http://software.intel.com/en-us/forums/intel-math-kernel-library/topic/53107/ эта крошечная нить.Однако эта тема, по-видимому, подразумевает, что просто взять верхнюю треугольную матрицу «U» (и разделить каждую строку на диагональ) — это то же самое, что уменьшенная ступенчатая форма матрицы, что, по моему мнению, не так.Я мог бы написать rref() самостоятельно, но не верю, что смогу добиться той производительности, которой славится LAPACK.

1) Есть ли лучший способ просто найти какое-то конкретное решение для недостаточно представленной системы?
2) Если нет, есть ли у LAPACK способ уменьшить количество строк в матрице?

Спасибо!

Это было полезно?

Решение

Одним из часто используемых методов для этого является решение методом наименьших квадратов, см. sgelsx от Lapack.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top