Matlab 曲线拟合之polyfit与polyval函数

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%的预测值。

有如下数据


时间t


1900


1910


1920


1930


1940


1950


1960


1970


1980


1990


2000


人口y


76


92


106


123


132


151


179


203


227


250


281

1. y与t的经验公式为 y = at^2 + bt + c

clear;
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

2. y与t的经验公式为y = a e^(bt)

clear;
clf;                                                      %清除当前窗口
clc;
t = 1900:10:2000;                                         %时间t
y = [76 92 106 123 132 151 179 203 227 250 281];          %人口y
yy = log(y);                                              %指数基尼必需的线性化变形
p2 = polyfit(t,yy,1);
b = p2(1);
a = exp(p2(2));
y2 = a * exp(b*t);                                       %指数拟合函数式
plot(t,y,‘rp‘,t,y2,‘k-‘);
grid off;
xlabel(‘时间t‘);
ylabel(‘人口数(百万)‘);
title(‘人口数据‘);

时间: 2024-10-13 18:33:41

Matlab 曲线拟合之polyfit与polyval函数的相关文章

Matlab 曲线拟合

在matlab中经常需要对数据进行曲线拟合,如最常见的多项式拟合,一般可以通过cftool调用曲线拟合工具(curve fit tool),通过图形界面可以很方便的进行曲线拟合,但是有些时候也会遇到不方便用图形工具.因此这里简单的记下两种常用的拟合方法. 1 多项式拟合(polyfit和polyval) polyfit可以对数据进行拟合(自定义用几次多项式),返回相应的参数,然后用polyval生成拟合后的数据点,下面的例子中我们对抛物线y=3x2+6x+5进行拟合. x = -5:0.1:5;

matlab 对矩阵取整的函数

Matlab取整函数有: fix, floor, ceil, round.取整函数在编程时有很大用处.一.取整函数1.向零取整(截尾取整)fix-向零取整(Round towards zero):>> fix(3.6)   ans =     32.向负无穷取整(不超过x 的最大整数-高斯取整)floor-向负无穷取整(Round towards minus infinity):>> floor(-3.6)  ans =    -43.向正无穷取整(大于x 的最小整数)ceil-向

[matlab]曲线拟合(整理)

一.曲线拟合是要找到一条光滑曲线,使其最佳地拟合数据,该曲线不必经过数据点: 二.曲线拟合的内容: 1.光滑曲线的形式是怎么样:多项式模型?指数模型?其他函数模型 2.最佳拟合的概念: 常用的误差准则是误差平方和最小,也可以是最大误差最小准则,误差绝对值和等. 三.Matlab多项式拟合函数(指数拟合可以转换为多项式拟合来做,略): ployfit(x,y,n);   %返回值为多项式的各个系数 x  自变量 y  应变量 n  多项式阶数 polyval(P,xi);   %返回值为多项式在x

matlab的一些关于块分类的函数~~~

1. nlfilter(General sliding-neighborhood operations) B = nlfilter(A, [m n], fun),这是一个其中A是图像[m  n]是图像处理区域的矩阵大小,fun是函数句柄,B是函数返回的一个标量. 意为对图像A的每个大小为m*n的patch进行fun函数的操作,patch的取法为滑动(sliding),即patch的中心像素遍历图像的每个点,当取到边界时需要进行边界延拓.fun必须是函数的句柄,可自由定义也可取matlab内置的函

Matlab之print,fprint,fscanf,disp函数

print: print函数可以把函数图形保存成图片: [plain] view plaincopy minbnd = -4*pi; maxbnd = 4*pi; t = minbnd:0.1*pi:maxbnd; plot(t, sin(t), 'g', 'Linewidth', 2); line([minbnd, maxbnd], [0, 0]); %绘制x轴 axis([-10, 10, -2, 2]) %定义显示的坐标区间:x在(-10,10)之间,y在(-2,2)之间 grid on;

MATLAB中导入数据:importdata函数

用load函数导入mat文件大家都会.可是今天我拿到一个数据,文件后缀名竟然是'.data'.该怎么读呢? 我仅仅好用matlab界面Workspace区域的"import data"button手工导入该文件.恩,还好,竟然成功了.顺便提一下,这个"import data"button功能非常强大,连excel文件都能导入. 可是假设在脚本里怎样导入这样的非mat文件呢? 这时候就轮到"importdata"函数登场啦! -----------

Matlab中常见的神经网络训练函数和学习函数

一.训练函数 1.traingd Name:Gradient descent backpropagation (梯度下降反向传播算法 ) Description:triangd is a network training function that updates weight and bias values  according to gradient descent. 2.traingda Name:Gradient descent  with adaptive learning rate

matlab实战中一些重要的函数总结

这段时间看了一些大型的matlab工程文件(如:faster r-cnn),对于工程中经常要用到的一些函数进行一个总结. 1.路径问题. 这主要涵括文件路径的包含和组合. curdir = fileparts(mfilename('fullpath')); addpath(genpath(fullfile(curdir, 'utils'))); mkdir_if_missing(fullfile(curdir, 'utils')); caffe_path = fullfile(curdir, '

Matlab入门学习(矩阵、函数、绘图的基本使用)

一.矩阵 1.定义和简单使用(一般的编程语言,数组下标都是从0开始的,但是MATLAB是从1开始的) >> a=[1 4 7; 2 5 8; 3 6 9] a = 1 4 7 2 5 8 3 6 9 >> b=[2 3 4;3 4 5;4 5 3]; >> c=[1;2;3]; >> a+b ans = 3 7 11 5 9 13 7 11 12 >> a*b ans = 42 54 45 51 66 57 60 78 69 >> a