Я пытаюсь смоделировать сигнал, и мне нужно решить матричное уравнение Ax = B. Здесь известны A и B: A - матрица 500x40 (40 кандидатов источника сигнала), B - вектор 500x1 (мой целевой сигнал) и x - это вектор 40x1, который я ищу (коэффициенты).
Я нашел функцию numpy .linalg.lstsq . Однако в этом случае у меня есть определенные граничные ограничения:
- все элементы x должны быть положительными;
- есть 5 характеристических c пиков в целевом сигнале, которые должны быть исправлено, другими словами, 5 конкретных элементов конечного произведения A * x должны совпадать с B.
Как я могу сначала применить граничные условия, а затем найти решение с наименьшим квадратом? Должен ли я использовать numpy .linalg.lstsq или другую функцию? Я сейчас ничего не понимаю и буду очень признателен за вашу помощь.
Заранее большое спасибо!
Соми