Matlab的根polyfit,μ用于居中和缩放



我将代码更改为使用居中和缩放,如频繁出现的警告消息中所建议的,使用以下形式:

[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]);

它不再像我以前使用居中和缩放时那样返回相同的根。我之前得到的根源是合理的价值观。

多项式是二次多项式,所以它不应该那么复杂。

Matlab根函数不使用定心和缩放参数。

就我的多项式系数而言,定心和缩放到底发生了什么?定中心和缩放如何影响根的计算?我怀疑它们已经被居中和缩放,但我不确定如何将它们转换为有用的值。

对于重新居中的&重新缩放拟合[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-有重新缩放的详细信息&CCD_ 7的重新定中心(。

因此,如果我是对的,使用threshold=roots([p(1:npoly) p(end)-thresholdLimit]) * mu(2) + mu(1)计算根应该会给你正确的解决方案!

相关内容

  • 没有找到相关文章