[matalb]polyfit多项式拟合函数以及polyval

polyfit

polyfit函数简介

polyfit函数是matlab中用于进行曲线拟合的一个函数。其数学基础是最小二乘法曲线拟合原理。曲线拟合:已知离散点上的数据集,即已知在点集上的函数值,构造一个解析函数(其图形为一曲线)使在原离散点上尽可能接近给定的值。

用法

p = polyfit(x,y,n)

p = polyfit(x,y,n) 返回阶数为 n 的多项式 p(x) 的系数,该阶数是 y 中数据的最佳拟合(在最小二乘方式中)。p 中的系数按降幂排列,p 的长度为 n+1

p(x)=p1xn+p2xn1+...+pnx+pn+1 p ( x ) = p 1 x n + p 2 x n − 1 + . . . + p n x + p n + 1

[p,S] = polyfit(x,y,n)

比上面多返回了结构体S,S可以在polyval中进行误差的计算

字段说明
RVandermonde 矩阵 x 的 QR 分解的三角因子
df自由度
normr残缺的范数
[p,S,mu] = polyfit(x,y,n)

mu 是一个二元素向量,包含中心化值和定标值。mu(1) 是 mean(x),mu(2) 是 std(x)。使用这些值时,polyfit 将 x 的中心置于零值处并定标为具有单位标准差,可以作为 polyval 的第四个输入以计算 p 在定标点 (x - mu(1))/mu(2) 处的解

简单的例子

利用polyfit和sin(x)函数拟合

x = linspace(0,4*pi,10);
y = sin(x);
%在区间 [0,4*pi] 中沿正弦曲线生成 10 个等间距的点

p = polyfit(x,y,7);
%七次拟合

x1 = linspace(0,4*pi);
y1 = polyval(p,x1);
figure
plot(x,y,'o');
hold on
plot(x1,y1,'r')
%画图

拟合的效果

image

中文文档的链接

polyval

polyval简介

主要用于多项式的计算

polyval用法

y = polyval(p,x)

y = polyval(p,x) 返回在 x 处计算的 n 次多项式的值。输入参数 p 是长度为 n+1 的向量,其元素是按要计算的多项式降幂排序的系数。
$p(x) = p_{1}x^{n} + p_{2}x^{n-1} + ... + p_{n}x + p_{n+1}$

y = polyval(p,x,[],mu)

[y,delta] = polyval(p,x,S) 使用 polyfit 生成的可选输出结构体 S 来生成误差估计值 delta。delta 是使用 p(x) 预测 x 处的未来观测值时的误差标准差估计值。如果 p 中的系数是 polyfit 计算的最小二乘估计值,polyfit 数据输入中的误差呈独立正态分布,并拥有常量方差,则 y±delta 至少包含 x 处 50% 的未来观测值。

[y,delta] = polyval(p,x,S)
[y,delta] = polyval(p,x,S,mu)

使用 x^=xμ1μ2 x ^ = x − μ 1 μ 2 取代 x。在此方程中, μ1 μ 1 =mean(x) 且 μ2 μ 2 =std(x)。居中和缩放参数 mu = [ μ1 μ 1 , μ2 μ 2 ] 是由 polyfit 计算的可选输出。

中文链接

polyvalm和polyval基本相似,只不过输入为矩阵,用作矩阵多项式的计算

  • 2
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值