polyfit
多项式曲线拟合
描述
例子
适合三角函数的多项式
生成10分沿正弦曲线的等距的间隔[0,4 *π)
。
x = linspace(0, 4 *π,10);y = sin (x);
使用polyfit
适合7点th-degree多项式。
p = polyfit (x, y, 7);
评估细网格上的多项式和阴谋的结果。
x1 = linspace(0, 4 *π);日元= polyval (p, x1);图绘制(x, y,“o”)举行在情节(x1, y1)从
多项式适合点集
5等距的点创建一个向量的区间[0,1]
,并评估
在这些点。
x = linspace (0, 1, 5);y = 1. / (1 + x);
适合度的多项式4到5点。一般来说,对n
点,你可以适应一个多项式的学位n - 1
完全通过点。
p = polyfit (x, y, 4);
评估的原始函数和多项式适合0和2之间的细网格点。
x1 = linspace (0, 2);日元= 1. / (1 + x1);f1 = polyval (p, x1);
画出函数值的多项式适合更广泛的间隔(0,2)
,分用于获得多项式适合强调圈。原始的多项式符合很好[0,1]
疑似间隔,但与拟合函数之外的时间间隔。
图绘制(x, y,“o”)举行在情节(x1, y1)情节(x1, f1,“r——”)传说(“y”,“日元”,“f1”)
符合误差函数的多项式
首先生成一个向量的x
点,等距的间隔[0,2.5]
,然后评估小块土地(x)
在这些点。
x = (0:0.1:2.5)”;y =小块土地(x);
确定学位的逼近多项式的系数6。
p = polyfit (x, y, 6)
p =1×70.0084 -0.0983 0.4217 -0.7435 0.1471 1.1064 0.0004
看的有多好,评估数据点的多项式和生成一个表显示数据,健康,和错误。
f = polyval (p (x);T =表(x, y, f, yf,“VariableNames”,{“X”,“Y”,“健康”,“FitError”})
T =26日×4表X Y适合FitError ___ ____ __________ ___________ 0 0 0.00044117 -0.00044117 0.1 0.11246 0.11185 0.00060836 0.2 0.2227 0.22231 0.00039189 0.3 0.32863 0.32872 -9.7429 e-05 0.4 0.42839 0.4288 -0.00040661 0.5 0.5205 0.52093 -0.00042568 0.6 0.60386 0.60408 -0.00022824 0.7 0.6778 0.67775 4.6383 e-05 1 0.8 0.7421 0.74183 0.00026992 0.9 0.79691 0.79654 0.00036515 0.8427 0.84238 0.0003164 1.1 0.88021 0.88005 0.00015948 1.2 0.91031 0.91035 -3.9919 e-05 1.3 0.93401 0.93422 -0.000211 1.4 0.95229 0.95258 -0.00029933 1.5 0.96611 0.96639 -0.00028097⋮
在这个区间,插入值和实际值相当接近达成一致。创建一个情节来展示这个区间外,外推值迅速偏离实际的数据。
x1 = (0:0.1:5) ';日元=小块土地(x1);f1 = polyval (p, x1);图绘制(x, y,“o”)举行在情节(x1, y1,“- - -”)情节(x1, f1,“r——”轴([0 5 0 2])从
使用定心和扩展来提高数值属性
创建一个表1750 - 2000年的人口数据和绘制数据点。
年= (1750:25:2000)';流行= 1 e6 * [791 856 978 1050 1262 1544 1650 2532 6122 8170 11560] ';T =表(流行),
T =11×2表1775年流行___ _____ 1750 7.91 e + 08年8.56 e + 08年1800 9.78 1.05 e + e + 1825年08 09年1850 1.262 1.544 e + e + 09年1875 09年1900 1.65 2.532 e + e + 09年1925 09年1950 6.122 8.17 e + e + 09年1975 09年2000 1.156 e + 10
情节(年,流行,“o”)
使用polyfit
有三个输出适合5 th-degree多项式使用定心和缩放,这提高了数值的属性问题。polyfit
中心的数据一年
在0和尺度的标准偏差1,避免一个坏脾气的范德蒙矩阵的计算。
(p ~μ)= polyfit (T。年,T。流行,5);
使用polyval
有四个输入评估p
按比例缩小的年,(year-mu(1)) /μ(2)
。阴谋的结果与最初的几年。
f = polyval (p,年,[],μ);持有在情节(一年,f)从
简单线性回归
适合简单线性回归模型的一组离散二维数据点。
创建一些向量样本数据点(x, y)。适合第一次多项式数据。
x = 1:50;y = -0.3 * x + 2 * randn (50);p = polyfit (x, y, 1);
评价拟合多项式p
在点x
。情节与数据生成的线性回归模型。
f = polyval (p (x);情节(x, y,“o”f, x,,“- - -”)传说(“数据”,“线性适应”)
线性回归与误差估计
符合线性模型的一组数据点和阴谋的结果,包括95%的预测区间的估计。
创建一些向量样本数据点(x, y)。使用polyfit
适合第一次多项式数据。指定两个回归系数的线性输出符合以及误差估计结构。
x = 1:10 0;y = -0.3 * x + 2 * randn (1100);[p, S] = polyfit (x, y, 1);
评估一级多项式适合p
在点x
。指定作为第三个输入,这样误差估计结构polyval
计算估计的标准误差。在返回的标准误差估计δ
。
[y_fitδ]= polyval (p, x, S);
画出原始数据,预测区间线性健康,和95% 。
情节(x, y,“波”)举行在情节(x, y_fit,的r -)情节(x, y_fit + 2 *δ,“m——”,x, y_fit-2 *δ,“m——”)标题(“线性的数据预测区间为95%”)传说(“数据”,“线性适应”,“95%的预测区间”)
输入参数
x
- - - - - -查询点
向量
查询点,指定为一个向量。的点x
对应于安装中包含的函数值y
。如果x
不是一个向量,那么polyfit
将它转换成一个列向量x (:)
。
警告消息结果时x
重复(或几乎重复)点或者x
可能需要定心和可伸缩性。
数据类型:单
|双
复数的支持:金宝app是的
y
- - - - - -拟合值在查询点
向量
在查询点,拟合值指定为一个向量。中的值y
包含在查询对应点x
。如果y
不是一个向量,那么polyfit
将它转换成一个列向量y (:)
。
数据类型:单
|双
复数的支持:金宝app是的
n
- - - - - -多项式适合度
正整数标量
多项式的次数,指定为一个正整数标量。n
指定最左边的多项式系数p
。
输出参数
p
——最小二乘多项式系数
向量
最小二乘多项式系数,作为一个向量返回。p
长度n + 1
和包含了多项式系数按照权力,最高的权力n
。如果任何一x
或y
包含南
价值观和n <长度(x)
,那么所有元素p
是南
。
使用polyval
评估p
在查询点。
年代
——误差估计结构
结构
误差估计结构。这个可选输出结构主要是作为输入polyval
函数来获取误差估计。年代
包含以下字段:
场 | 描述 |
---|---|
R |
三角R 因素(可能排列)范德蒙矩阵的QR分解x |
df |
自由度 |
normr |
规范的残差 |
如果数据在y
是随机的,那么协方差矩阵的估计p
是(Rinv * Rinv”) * normr ^ 2 / df
,在那里Rinv
的逆R
。
如果数据中的错误y
是独立的和正常的恒定方差呢(y),δ)= polyval (…)
产生误差范围包含至少50%的预测。也就是说,y
±δ
包含至少50%的预测未来的观察x
。
μ
——定心和缩放值
双元素向量
定心和缩放值,作为双元素返回向量。μ(1)
是意思是(x)
,μ(2)
是性病(x)
。这些值中心查询点x
在零与单位标准差。
使用μ
第四个输入polyval
评估p
在扩展点,(x - mu(1)) /μ(2)
。
限制
在很多问题点,增加多项式适合使用的程度
polyfit
并不总是导致一个更好的选择。高阶多项式可以数据点之间的振荡,导致贫穷适合的数据。在这些情况下,您可以使用一个低阶多项式适合(这往往是平滑点)之间或不同技术,根据不同的问题。多项式是无界的,振荡函数的性质。因此,他们不适合推断数据或单调有界(增加或减少)数据。
算法
polyfit
使用x
形成范德蒙矩阵V
与n + 1
列和m =长度(x)
行,导致线性系统
哪一个polyfit
解决与p = V \ y
。由于范德蒙矩阵的列向量的权力x
的条件数V
常大,高阶,导致奇异系数矩阵。在这些情况下定心和扩展可以改善系统的数值属性来产生更可靠的健康。
扩展功能
高大的数组
计算和数组的行比装入内存。
C / c++代码生成
生成C和c++代码使用MATLAB®编码器™。
使用笔记和限制:
看到适应限制工具箱函数的代码生成(MATLAB编码器)。
线程环境
在后台运行代码使用MATLAB®backgroundPool
与并行计算工具箱™或加速代码ThreadPool
。
这个函数完全支持线程的环境。金宝app有关更多信息,请参见MATLAB函数线程环境中运行。
GPU数组
加速代码运行在一个图形处理单元(GPU)使用并行计算工具箱™。
这个函数完全支持GPU数组。金宝app有关更多信息,请参见运行在GPU MATLAB函数(并行计算工具箱)。
分布式阵列
分区大数组在内存使用并行计算集群的工具箱相结合™。
这个函数完全支持分布式阵列。金宝app有关更多信息,请参见运行MATLAB函数与分布式阵列(并行计算工具箱)。
版本历史
Apri esempio
如果dispone di una versione modificata di questo esempio。Desideri aprire questo esempio con le modifiche星期二吗?
第一MATLAB
海脂肪clic苏联合国collegamento切corrisponde questo第一MATLAB:
Esegui il第一inserendolo所以nella隙缝di第一MATLAB。我浏览器web非supportano金宝app comandi MATLAB。
你也可以从下面的列表中选择一个网站:
表现最好的网站怎么走吗
选择中国网站(中文或英文)最佳站点的性能。其他MathWorks国家网站不优化的访问你的位置。