кривизна вашей реализации
Перепроверил кривизну моей реализации метода Грамм-Шмидта и выяснил что на тестовых данных, матрицах любой размерности, пробовал так же как в методе до 100 строк, 2...10 столбцов, ничего не меняется, разложение стабильно.
А вот применительно к методу Прони, там где мы заказываем излишние компоненты и он их вынужденно изобретает, вот в этой части наблюдается некий разброс. При этом компоненты с осмысленной частью стабильны.
Решение первого СЛАУ через SVD, при заказе компонент больше необходимого, получается неверным.
Видимо он дополнительно разлагает компоненты на большее число компонент.
Решение первого СЛАУ mathcad'овским QR невозможно по причине того, что он не может вычислить QR.
Но зато специализированная функция lsolve работает, стабильно и правильно, ей пока и буду пользоваться. А нюансы переноса на C# учту потом.
вот тут, мне кажется, Вы потеряли знак у вещественной части
Потерял, пока писал. Прошу прощения.
Но Вы "заказали" не две, а три экспоненты
Интересно так же поведение когда мы заказываем меньше компонент чем есть. Решение так же получается не совсем ожидаемым.
Откуда возникает вопрос, а как это программно анализировать?
Если компонент меньше чем есть амплитуда не 0.
Если компонент больше появляются нулевые амплитуды, тут понятно, можно отсеять.
Как правильно отлавливать компоненты образующие пары? Тупо по совпадению модулей их аплитуд, частот...
Если бы Вы задали
, вектор
получился бы:
Получается.
Первое СЛАУ создаю как написали Вы, это несколько отличается от Марпла.
Второе СЛАУ я создаю по Марплу, оно решается, получаются амплитуды и начальные фазы.
Но надо ещё уточнить, что именно получилось, и проверить.
Получились 2 амплитуды
,
и начальные фазы
,
. При заказанных 2х компонетах.
Если заказать больше, то результат такой же. Могут только местами меняться.
Еще смущает то, что lsolve, решатель СЛАУ mathcad'a, который получил этот правильный ответ, как написано в справке основан на LU, а как оно может разложить прямоугольную матрицу?!
Разобрался. Он допускает прямоугольную L.
Готов пойти дальше.
Спектр по прежнему непонятно как вычислять.