我没有说谎 发表于 2019-7-4 15:30:43

MATLAB:将离散点拟合成曲线


MATLAB将离散点拟合成曲线的两种方法:
1.使用spline函数。
x=;
y=;
xx=0:0.01:10;
yy=spline(x,y,xx);
plot(x,y,'o',xx,yy);
结果如下:


2. polyfit与polyval函数

= polyfit(x,y,n)
说明:x,y为数据点,n为多项式阶数,返回p为幂次从高到低的多项式系数向量p。x必须是单调的。矩阵s用于生成预测值的误差估计。

多项式曲线求值函数:polyval( )

调用格式: y=polyval(p,x)

=polyval(p,x,s)
说明:y=polyval(p,x)为返回对应自变量x在给定系数P的多项式的值。

=polyval(p,x,s) 使用polyfit函数的选项输出s得出误差估计Y DELTA。它假设polyfit函数数据输入的误差是独立正态的,并且方差为常数。则Y DELTA将至少包含50%的预测值。
clear;
clf;                                                      %清除当前窗口
clc;
t = 1900:10:2000;                                       %时间t
y = ;          %人口y

plot(t,y,'k*');
hold on;
% figure;                               %重新开一个图
p1 = polyfit(t,y,2);
plot(t, polyval(p1, t));
axis();                                  %图像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

t=;

y=;

plot(t,y,'o');

hold on

p=polyfit(t,y,2)

y1=polyval(p,t);

plot(t,y1)
结果:
页: [1]
查看完整版本: MATLAB:将离散点拟合成曲线