polyval
多项式计算
说明
示例
计算几个点处的多项式值
计算多项式 在点 处的值。多项式系数可以由向量 [3 2 1]
表示。
p = [3 2 1]; x = [5 7 9]; y = polyval(p,x)
y = 1×3
86 162 262
对四次多项式求积分
计算定积分
创建一个向量来表示多项式被积函数 。 项不存在,因此系数为 0。
p = [3 0 -4 10 -25];
使用 polyint
和等于 0
的积分常量来对多项式求积分。
q = polyint(p)
q = 1×6
0.6000 0 -1.3333 5.0000 -25.0000 0
通过在积分范围上计算 q
,求解积分的值。
a = -1; b = 3; I = diff(polyval(q,[a b]))
I = 49.0667
具有误差估计值的线性回归
将一个线性模型拟合到一组数据点并绘制结果,其中包含预测区间为 95% 的估计值。
创建几个由样本数据点 (x,y) 组成的向量。使用 polyfit
对数据进行一次多项式拟合。指定两个输出以返回线性拟合的系数以及误差估计结构体。
x = 1:100; y = -0.3*x + 2*randn(1,100); [p,S] = polyfit(x,y,1);
计算以 p
为系数的一次多项式在 x
中各点处的拟合值。将误差估计结构体指定为第三个输入,以便 polyval
计算标准误差的估计值。标准误差估计值在 delta
中返回。
[y_fit,delta] = polyval(p,x,S);
绘制原始数据、线性拟合和 95% 预测区间 。
plot(x,y,'bo') hold on plot(x,y_fit,'r-') plot(x,y_fit+2*delta,'m--',x,y_fit-2*delta,'m--') title('Linear Fit of Data with 95% Prediction Interval') legend('Data','Linear Fit','95% Prediction Interval')
使用中心化和缩放改善数值属性
创建一个由 1750 - 2000 年的人口数据组成的表,并绘制数据点。
year = (1750:25:2000)'; pop = 1e6*[791 856 978 1050 1262 1544 1650 2532 6122 8170 11560]'; T = table(year, pop)
T=11×2 table
year pop
____ _________
1750 7.91e+08
1775 8.56e+08
1800 9.78e+08
1825 1.05e+09
1850 1.262e+09
1875 1.544e+09
1900 1.65e+09
1925 2.532e+09
1950 6.122e+09
1975 8.17e+09
2000 1.156e+10
plot(year,pop,'o')
使用带三个输入的 polyfit
拟合一个使用中心化和缩放的 5 次多项式,这将改善问题的数值属性。polyfit
将 year
中的数据以 0 为进行中心化,并缩放为具有标准差 1,这可避免在拟合计算中出现病态的范德蒙矩阵。
[p,~,mu] = polyfit(T.year, T.pop, 5);
使用带四个输入的 polyval
,根据缩放后的年份 (year-mu(1))/mu(2)
计算 p
。绘制结果对原始年份的图。
f = polyval(p,year,[],mu); hold on plot(year,f) hold off
输入参数
p
— 多项式系数
向量
多项式系数,指定为向量。例如,向量 [1 0 1]
表示多项式 ,向量 [3.13 -2.21 5.99]
表示多项式 。
有关详细信息,请参阅创建并计算多项式。
数据类型: single
| double
复数支持: 是
S
— 误差估计结构体
结构体
误差估计结构体。此结构体是 [p,S] = polyfit(x,y,n)
的可选输出,可用于获取误差估计值。S
包含以下字段:
字段 | 描述 |
---|---|
R | 范德蒙矩阵 x 的 QR 分解的三角因子 |
df | 自由度 |
normr | 残差的范数 |
如果 y
中的数据是随机的,则 p
的估计协方差矩阵是 (Rinv*Rinv')*normr^2/df
,其中 Rinv
是 R
的逆矩阵。
输出参数
扩展功能
tall 数组
对行数太多而无法放入内存的数组进行计算。
C/C++ 代码生成
使用 MATLAB® Coder™ 生成 C 代码和 C++ 代码。
基于线程的环境
使用 MATLAB® backgroundPool
在后台运行代码或使用 Parallel Computing Toolbox™ ThreadPool
加快代码运行速度。
此函数完全支持基于线程的环境。有关详细信息,请参阅在基于线程的环境中运行 MATLAB 函数。
GPU 数组
通过使用 Parallel Computing Toolbox™ 在图形处理单元 (GPU) 上运行来加快代码执行。
此函数完全支持 GPU 数组。有关详细信息,请参阅Run MATLAB Functions on a GPU (Parallel Computing Toolbox)。
分布式数组
使用 Parallel Computing Toolbox™ 在集群的组合内存中对大型数组进行分区。
此函数完全支持分布式数组。有关详细信息,请参阅Run MATLAB Functions with Distributed Arrays (Parallel Computing Toolbox)。
版本历史记录
在 R2006a 之前推出
MATLAB 命令
您点击的链接对应于以下 MATLAB 命令:
请在 MATLAB 命令行窗口中直接输入以执行命令。Web 浏览器不支持 MATLAB 命令。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)