matlab的拟合函数polyfit()函数
matlab的多项式拟合:
polyfit()函数
功能:在最小二乘法意义之上,求解Y关于X的最佳的N次多项式函数。
clc;clear;
close all;
x=[ ];
y=[2.7 7.4 20.0 54.5 148.4];
r=corrcoef(x,y) ;%两个变量的相关系数
a=polyfit(x,y,)
x1=:0.1:;
P=polyval(a,x1);%a是多项式拟合后返回的系数
figure();hold on;plot(x,y,'r*',x1,P,'b-.');
注:a是返回的两次多项式的系数,返回结果是:14.3071 -51.9929 45.2000,这意味着拟合的多项式是:
y=45.2000+(-51.9929)*x+14.3071*x^2

clc;clear;
close all;
x=[ ];
y=[2.7 7.4 20.0 54.5 148.4];
r=corrcoef(x,y) ;
%a=polyfit(x,y,)
b=polyfit(x,y,)
c=polyfit(x,y,)
x1=:0.1:;
%Pa=polyval(a,x1);%a是多项式拟合后返回的系数
Pb=polyval(b,x1);%a是多项式拟合后返回的系数
Pc=polyval(c,x1);%a是多项式拟合后返回的系数
%figure();hold on;plot(x,y,'r*',x1,Pa,'b-.');
figure();hold on;plot(x,y,'r*',x1,Pb,'r-.');
figure();hold on;plot(x,y,'r*',x1,Pc,'g-.');

注:红色是三次拟合的结果。
绿色是四次拟合的结果。
例1:
clc;clear;
close all;
x=[ ];
y=[2.7 7.4 20.0 54.5 148.4];
r=corrcoef(x,y) ;
%a=polyfit(x,y,)
[b s]=polyfit(x,y,)
%c=polyfit(x,y,)
x1=:0.1:;
%Pa=polyval(a,x1);%a是多项式拟合后返回的系数
Pb=polyval(b,x1);%a是多项式拟合后返回的系数
%Pc=polyval(c,x1);%a是多项式拟合后返回的系数
%figure();hold on;plot(x,y,'r*',x1,Pa,'b-.');
figure();hold on;plot(x,y,'r*',x1,Pb,'r-.');
%figure();hold on;plot(x,y,'r*',x1,Pc,'g-.');
注:[b s]=polyfit(x,y,3) %这里返回的s是个结构体,s中的normr表示拟合的残差的二范。
以下例子的来源:https://blog.csdn.net/qq_33591755/article/details/82453757
有如下数据
|
时间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 = ::; %时间t
y = [ ]; %人口y plot(t,y,'k*');
hold on;
% figure; %重新开一个图
p1 = polyfit(t,y,);
h=polyval(p1, t);
plot(t, h);
axis([ ]); %图像xy轴范围 disp(char(['y=',poly2str(p1,'t')],['a=',num2str(p1()),' b=',...
num2str(p1()),' c=',num2str(p1())]));

2. y与t的经验公式为y = a e^(bt)
clear;
clf; %清除当前窗口
clc;
t = ::; %时间t
y = [ ]; %人口y
yy = log(y); %指数基尼必需的线性化变形
p2 = polyfit(t,yy,);
b = p2();
a = exp(p2());
y2 = a * exp(b*t); %指数拟合函数式
plot(t,y,'rp',t,y2,'k-');
grid off;
xlabel('时间t');
ylabel('人口数(百万)');
title('人口数据');

最佳拟合次数的确定:
clc;clear;
close all;
x=[ ];
y=[2.7 7.4 20.0 54.5 148.4];
for i=:
y2=polyfit(x,y,i);
Y=polyval(y2,x);%计算拟合函数在x处的值。
if sum((Y-y).^)<0.1
c=i
break;
end
end
matlab的拟合函数polyfit()函数的更多相关文章
- matlab多项式拟合以及指定函数拟合
clc;clear all;close all;%% 多项式拟合指令:% X = [1 2 3 4 5 6 7 8 9 ];% Y = [9 7 6 3 -1 2 5 7 20]; % P= poly ...
- matlab中的polyfit函数。
来源:https://blog.csdn.net/zhaluo0051/article/details/77949170 :https://blog.csdn.net/g28_gwf/article/ ...
- MATLAB相关快捷键以及常用函数
MATLAB快捷键大全 F1帮助 F2改名F3搜索 F4地址 F5刷新 F6切换 F10菜单 CTRL+A全选 CTRL+C复制 CTRL+X剪切 CTRL+V粘贴 CTRL+Z撤消 CTRL+O打开 ...
- MATLAB利用散点进行函数曲线拟合
原文:MATLAB利用散点进行函数曲线拟合 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/laobai1015/article/details/77 ...
- MATLAB中trapz和cumtrapz函数
这两个函数都是MATLAB中的内置函数,是基于梯形法则的数值积分公式 例如我们有函数y=x^3-2x-3,为了计算在[0,1]上的积分,可以这么做: 其中x和y分别是自变量和对应的值,trapz其实就 ...
- matlab 对图像操作的函数概览
转自博客:http://blog.163.com/fei_lai_feng/blog/static/9289962200991713415422/ 一. 读写图像文件 1. imread imread ...
- Matlab近期用到的函数(持续更新)
最近任务用到matlab较多,第一版的代码大部分对于矩阵类的计算都是用for循环来完成的,主要是思维还没有适应matlab.看了同事的一份代码后,现在遇到需要循环的地方第一反应就是如何能够用矩阵的直接 ...
- MATLAB中“repmat”与“cat”函数的用法
MATLAB中“repmat”与“cat”函数的用法 作者:凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1. repmat函数 >> z=re ...
- MATLAB算术运算符和常用函数
1 算术运算符 Matlab中的算术运算符按优先级由高到低为: (1) ^ 幂 (2) * 乘 / 右除(正常除) ...
随机推荐
- 使用SnowFlake算法生成唯一ID
转自:https://segmentfault.com/a/1190000007769660 考虑过的方法有 直接用时间戳,或者以此衍生的一系列方法 Mysql自带的uuid 以上两种方法都可以查到就 ...
- LeetCode 86. 分隔链表(Partition List)
86. 分隔链表 86. Partition List 题目描述 给定一个链表和一个特定值 x,对链表进行分隔,使得所有小于 x 的节点都在大于或等于 x 的节点之前. 你应当保留两个分区中每个节点的 ...
- Kafka Broker | 命令行选项和过程
1.目标 在这个Apache Kafka教程中,我们将学习Kafka Broker.Kafka Broker管理主题中的消息存储.如果Apache Kafka有多个代理,那就是我们所说的Kafka集群 ...
- 统一封装json返回结果
import org.codehaus.jackson.annotate.JsonIgnore; import org.codehaus.jackson.map.annotate.JsonSerial ...
- proxy_banner
- LOJ2882 JOISC2014 两个人的星座 计算几何
传送门 一件值得注意的事情是:平面上两个不相交的三角形一定会存在两条公切线 那么我们可以枚举三角形的公切线,计算有多少个三角形的公切线之一为该线,所有的答案除以2就是我们要求的答案. 考虑如何去计算有 ...
- mysql开启二进制日志
打开xhell进入系统 进入mysql配置文件目录 执行 cd /etc/mysql 首先找到my.cnf这个配置文件,然后使用vim进入文件编辑 放开我标记的地方. 注意我标记的地方,其实这个就是在 ...
- Ubuntu 18.04 LTS版本 GIMP安装
为何安装? GIMP全称GNU Image Manipulation Program,是Linux下的一款图片处理软件,功能基本完备,用户体验不错. 如何安装? 命令:sudo apt install ...
- pycharm从本地离线添加模块
豆瓣的源: http://pypi.douban.com/simple pip install matplotlib -i http://pypi.douban.com/simple --truste ...
- php生成一维码以及保存-转载
地址:http://www.cnblogs.com/ForEvErNoME/archive/2012/04/21/2460944.html 注释掉: //header('Content-Type: i ...