Корни для Matlab polyfit с му для центрирования и масштабирования - PullRequest
0 голосов
/ 15 марта 2020

Я изменил свой код на используемое центрирование и масштабирование, как предлагается в часто встречающемся предупреждающем сообщении, используя эту форму:

       [p,~, mu] = polyfit(tScan(observationRange),aScan(observationRange),npoly);
       tPoly = linspace (tScan(observationRange(1)),tScan(observationRange(end)), 100);
       aPoly = polyval(p,tPoly,[],mu);

Но в том же коде, где я ранее находил корни многочлена с этой линией

       threshold = roots([p(1:npoly) p(end)-thresholdLimit]);

Он больше не возвращает те же корни, что и до того, как я использовал центрирование и масштабирование. Корни, которые я получал раньше, были разумными значениями.

Полином 2-й степени, поэтому не должно быть так сложно.

Функция корней Matlab не работает с центрированием и масштабированием параметр.

Что на самом деле происходит с центрированием и масштабированием, насколько это касается моих полиномиальных коэффициентов? Как центрирование и масштабирование влияют на вычисление корней? Я подозреваю, что они были отцентрированы и масштабированы, но я не уверен, как преобразовать их в полезные значения.

1 Ответ

1 голос
/ 18 марта 2020

Для пересмотренного и повторно масштабированного фитинга [p,~,mu]=polyfit(x,y,n), функция сначала вычисляет ваш заново центрированный и масштабированный x_bis = (x-mu(1))/mu(2) (где mu(1) = mean(x) и mu(2) = std(x)). Затем он вычисляет подходящий полиномиальный коэффициент. Таким образом, полиномиальные коэффициенты будут такими же, как у вашего повторно центрированного и перемасштабированного x_bis, что отличается от вашего исходного сигнала x.

(По этой ссылке - https://fr.mathworks.com/help/matlab/ref/polyfit.html - есть подробности о масштабировании и повторном центрировании x).

Поэтому вычисление ваших корней с использованием threshold=roots([p(1:npoly) p(end)-thresholdLimit]) * mu(2) + mu(1) должно дать вам правильные решения, если я прав!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...