Python: матричное деление с граничными ограничениями - PullRequest
2 голосов
/ 05 февраля 2020

Я пытаюсь смоделировать сигнал, и мне нужно решить матричное уравнение Ax = B. Здесь известны A и B: A - матрица 500x40 (40 кандидатов источника сигнала), B - вектор 500x1 (мой целевой сигнал) и x - это вектор 40x1, который я ищу (коэффициенты).

Я нашел функцию numpy .linalg.lstsq . Однако в этом случае у меня есть определенные граничные ограничения:

  1. все элементы x должны быть положительными;
  2. есть 5 характеристических c пиков в целевом сигнале, которые должны быть исправлено, другими словами, 5 конкретных элементов конечного произведения A * x должны совпадать с B.

Как я могу сначала применить граничные условия, а затем найти решение с наименьшим квадратом? Должен ли я использовать numpy .linalg.lstsq или другую функцию? Я сейчас ничего не понимаю и буду очень признателен за вашу помощь.

Заранее большое спасибо!

Соми

...