您的位置:首页 > 编程语言 > MATLAB

Matlab 曲线拟合之polyfit与polyval函数

2018-03-30 14:38 309 查看
https://www.cnblogs.com/farewell-farewell/p/7227516.html

p=polyfit(x,y,n)[p,s]= polyfit(x,y,n)说明:x,y为数据点,n为多项式阶数,返回p为幂次从高到低的多项式系数向量p。x必须是单调的。矩阵s用于生成预测值的误差估计。 多项式曲线求值函数:polyval( )调用格式: y=polyval(p,x)[y,DELTA]=polyval(p,x,s)说明:y=polyval(p,x)为返回对应自变量x在给定系数P的多项式的值。[y,DELTA]=polyval(p,x,s) 使用polyfit函数的选项输出s得出误差估计Y DELTA。它假设polyfit函数数据输入的误差是独立正态的,并且方差为常数。则Y DELTA将至少包含50%的预测值。有如下数据
时间t19001910192019301940195019601970198019902000
人口y7692106123132151179203227250281
1. y与t的经验公式为 y = at^2 + bt + cclear;
clf; %清除当前窗口
clc;
t = 1900:10:2000; %时间t
y = [76 92 106 123 132 151 179 203 227 250 281]; %人口y

plot(t,y,'k*');
hold on;
% figure;                          %重新开一个图
p1 = polyfit(t,y,2);
plot(t, polyval(p1, t));
axis([1900 2000 0 300]); %图像xy轴范围

disp(char(['y=',poly2str(p1,'t')],['a=',num2str(p1(1)),' b=',...
num2str(p1(2)),' c=',num2str(p1(3))]));结果如下:y= 0.0094289 t^2 - 34.7482 t + 32061.5711
a=0.0094289 b=-34.7482 c=32061.5711
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: