Javascript 等价于 Matlab 函数的函数:Polyfit/Polyval?
迫切需要一个与 Matlab 中存在的 polyval 和 polyfit 函数等效的 Javascript。本质上,matlab 中的这些函数根据指定的多项式基于两个大小相等的数组进行曲线拟合。我需要做一些涉及 JavaScript 中曲线拟合的计算,但我一生都找不到等效的函数。
这是MatLab对函数polyfit的解释
"P = POLYFIT(X,Y,N) 求多项式 P(X) 的系数 在最小二乘意义上最适合数据 Y 的度 N。 P 是 一个 长度为 N+1 的行向量,包含多项式系数 降幂,P(1)*X^N + P(2)*X^(N-1) +...+ P(N)*X + P(N+1)。"
这是MatLab对polyval的解释。
“POLYVAL 计算多项式。 Y = POLYVAL(P,X) 返回在以下位置计算的多项式 P 的值 X.P 是一个长度为 N+1 的向量,其元素是 这 多项式的降幂。
<前><代码> Y = P(1)*X^N + P(2)*X^(N-1) + ... + P(N)*X + P(N+1)"
任何帮助都会很棒。
问候,
Desperately need a Javascript equivalent to polyval and polyfit functions that exist in Matlab. Essentially those functions in matlab do a curve fit based on two equally sized arrays depending on a specified polynomial. I need to do some calculations that involve curve fitting in javascript and can't for the life of me find an equivalent function.
This is MatLab's explanation of the function polyfit
"P = POLYFIT(X,Y,N) finds the coefficients of a polynomial P(X) of
degree N that fits the data Y best in a least-squares sense. P is
a
row vector of length N+1 containing the polynomial coefficients in
descending powers, P(1)*X^N + P(2)*X^(N-1) +...+ P(N)*X + P(N+1)."
This is MatLab's explanation of polyval.
"POLYVAL Evaluate polynomial.
Y = POLYVAL(P,X) returns the value of a polynomial P evaluated at
X. P
is a vector of length N+1 whose elements are the coefficients of
the
polynomial in descending powers.Y = P(1)*X^N + P(2)*X^(N-1) + ... + P(N)*X + P(N+1)"
Any help would be super.
Regards,
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
numericjs 可能会帮助您入门。
numericjs may help you get started.
POLYFIT
执行最小二乘 多项式拟合归结为求解线性方程组。我进行了快速搜索,但找不到基本的 线性代数 Javascript 库解决此类系统...最简单的方法是实现 高斯自行消除算法。POLYVAL 只是通过代入方程中的系数来计算 X 点处的多项式。
POLYFIT
performs a least-square polynomial fitting which comes down to solving a system of linear equations. I did a quick search, but I couldn't find a basic linear algebra Javascript library that solves such systems... The easiest method would be to implement the Gaussian elimination algorithm yourself.POLYVAL
is simply evaluating the polynomial at the points X by substituting the coefficients in the equation.也许这段代码可以帮助某人
perhaps this code might help someone
尝试这个要点,它使用numeric.js:
Give this gist a try, it uses numeric.js: