多项式拟合

这篇具有很好参考价值的文章主要介绍了多项式拟合。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

文章内容部分参考:建模算法入门笔记-多项式拟合(附源码) - 哔哩哔哩 (bilibili.com)

(9条消息) 数学建模——人口预测模型公有木兮木恋白的博客-CSDN博客数学建模人口预测模型

多项式拟合是数据拟合的一种,与插值有一定区别(插值要求曲线经过给定的点,拟合不一定经过给定的点)

介绍MATLAB中三种多项式拟合的方法——代码法、代码窗口法、窗口法

根据这个例子进行三种方法的分析:给定以下点(1,9)(2,5)(3,4)(4,4)(5,2)(6,3)(7,2)(8,4)(9,9),要求进行多项式拟合,求出x=5.5、x=10时的y值

分析之前要在matlab绘制散点图:

方法一:通过plot函数画离散点图

打开matlab,在命令行窗口中输入“x=[1 2 3 4 5 6 7 8 9] y=[9 5 4 4 2 3 2 4 9]”创建离散点数据,需要注意x,y长度一致

然后输入plot(x,y,’r.'),其中r是代表红色,后面的点是绘制的离散点形状,如图:

多项式拟合

方法二:通过scatter函数画离散点图

在命令行窗口中输入“scatter(x,y,'k*')”

多项式拟合

可以由图看出,题目给点分布散乱,且x=5.5与x=10的点都不存在,这时需要拟合曲线,根据曲线的函数,求出对应的y值(x=5.5在所给x区间[1,9]内,这时求对应的y值为内插法,反之x=10在区间外,此时求y值为外插法。一般用拟合法求内插外插法多为预测类

一、代码法


MATLAB代码如下:(使用时只需修改部分数据即可)

x=[123456789];
​
y=[954423249];
​
z=polyfit(x,y,3);
​
xi=0:1:10;
​
yi=polyval(z,xi);
​
plot(xi,yi,x,y,'r*');

其中,z=polyfit(x,y,3);的3拟合的最高次幂为3,该最高次幂需要不断调整,以得出最佳拟合方案。

多项式拟合

据图可以读出,x=5.5时y约为2,x=10时y约为13.5

该方法较为简便,但是需要自行修改、调整函数系数,而且不能得出拟合曲线的具体函数值

二、代码窗口法


先输入以下代码,绘出点图:

x=[123456789];
​
y=[954423249];
​
plot(x,y,'r*')

然后按下面的操作来即可:

多项式拟合

一个是样条插值,一个是三次方拟合

多项式拟合
多项式拟合

不同的拟合方法对应的函数都不同,根据函数图像,估计对应的y值即可

三、窗口法


值得注意的是:上述两种方法都能方便地得到函数图像,但是却不能得到具体的拟合函数表达式。而窗口法却能快速得到表达式(但是有的表达式的系数是以概率表达的)。

首先输入给定的x值与y值:x=[1 2 3 4 5 6 7 8 9];y=[9 5 4 4 2 3 2 4 9];

再点击APP栏的Curve Fitting栏

令X data为x,Y data为y后,选择拟合方式即可,本图为一次线性拟合

多项式拟合

三次拟合

多项式拟合

图像左侧的Results栏是输出的函数表达式,注意其系数是按照概率选取的:

Linear model Poly3:
​
   f(x) = p1*x^3 + p2*x^2 + p3*x + p4
​
Coefficients (with 95% confidence bounds):
​
•    p1 =   0.03535 (-0.04166, 0.1124)
​
•    p2 =   -0.1407 (-1.308, 1.026)
​
•    p3 =   -1.795 (-6.95, 3.36)
​
•    p4 =    10.14 (3.856, 16.43)

具体的拟合函数表达式需要视所用的拟合方法的不同而定。

处理人口模型


1、假设

把人口增长看做是一个多项式函数

人口增长没有限制,可以一直增长

2、特点

已有数据拟合的很好,不论数据有没有规律可言

预测未来一两年比较准确,越往后越不准确

预测的人口数量在未来会超出人口限制,且增长速度变快

3、代码实现

以年份为x轴变量,当年人口为y轴变量,将两者进行拟合得到人口数模型与时间的关系式,选取某城市2008到2019年老年人口数量进行模拟测试

首先是将已有的数据拟合成一条曲线,过程代码如下所示

close
​
clc;
​
clearall      %清除所有
​
n=5;%拟合多项式的次数
​
year=2008:2019;
​
num=[97.42102.36  105.78  111.16  116.04  121.71  126.26  134.93  137139141.89146];%户籍人口;
​
p5= polyfit(year,num,n);    %5阶拟合 
​
%绘制原始数据和拟合曲线图
​
figure(1)
​
holdon;
​
xlabel('year');   %设置横坐标名
​
ylabel('num');   %设置纵坐标名
​
title('2008-2019人口增长曲线');  %设置标题
​
gridon   %网格线
​
plot(year,num,'r*',year,polyval(p5,year))
​
legend('人口数量','拟合曲线')
多项式拟合

然后预测未来几年的人口增长数文章来源地址https://www.toymoban.com/news/detail-441178.html

figure(2)
​
year1=2008:2025;
​
plot(year1,polyval(p5,year1))
​
people=polyval(p5,year1);
​
legend('人口预测数量')
多项式拟合

到了这里,关于多项式拟合的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • pytorch 欠拟合和过拟合 多项式回归

        训练误差和验证误差都有,还可能比较严重, 但它们之间仅有差距不大。 这个时候模型不能降低训练的误差,有可能是我们设计的模型简单了,表达能力不足, 捕获试图学习的模式比较难。由于我们的训练和验证误差之间的泛化误差很小, 这个时候我们认为可以用一

    2024年02月16日
    浏览(26)
  • Python做曲线拟合(一元多项式拟合及任意函数拟合)

    目录 1. 一元多项式拟合 使用方法 np.polyfit(x, y, deg) 2. 任意函数拟合 使用 curve_fit() 方法 实例: (1)初始化 x 和 y 数据集 (2)建立自定义函数 (3)使用自定义的函数生成拟合函数绘图  polyfig 使用的是最小二乘法,用于拟合一元多项式函数。 参数说明: x 就是x坐标,

    2024年02月02日
    浏览(38)
  • 【Matlab】最小二乘法拟合多项式

    在最近的电机项目中,有遇到有传感器数据并不线性的问题,然后想要用最小二乘法做个曲线拟合,反过来去校准不线性的传感器的数据,因此记录一下使用最小二乘法来拟合多项式的曲线的步骤。本篇从最小二乘法的原始公式入手编写M文件,目的是方便使用单片机实现,或

    2023年04月22日
    浏览(32)
  • matlab RANSAC拟合多项式曲线

    本文由CSDN点云侠原创,原文链接。爬虫网站自重,把自己当个人。爬些不完整的误导别人有意思吗????

    2024年02月12日
    浏览(33)
  • MATLAB polyfit函数——多项式拟合

        此函数用一个n次多项式来拟合一组数据点(x,y),并且将多项式系数以数组p的形式输出,p中的系数按降幂排列,数组长度为 n+1。     如果要将拟合好的多项式系数绘制出来,可以使用polyval函数:     此函数的作用是对给定的x1的值,通过多项式系数数组p计算对应的y1值

    2024年02月16日
    浏览(32)
  • 自动驾驶规划 - 5次多项式拟合

    自动驾驶运动规划中会用到各种曲线,主要用于生成车辆的轨迹,常见的轨迹生成算法, 如贝塞尔曲线,样条曲线,以及apollo EM Planner的五次多项式曲线 ,城市场景中使用的是分段多项式曲线,在 EM Planner和Lattice Planner 中思路是,都是先通过动态规划生成点,再用5次多项式

    2024年02月03日
    浏览(56)
  • Matlab 线性拟合、一维、多维度非线性拟合、多项式拟合

      线性拟合 我随便设定一个函数然后通过解方程计算出对应的系数 假设我的函数原型是 y=a*sin(0.1*x.^2+x)+b* squre(x+1)+c*x+d  拟合系数:   利用matlab实现非线性拟合(三维、高维、参数方程)_matlab多元非线性拟合_hyhhyh21的博客-CSDN博客 简单的一维的拟合: 思路: 将非线性-》线

    2024年02月12日
    浏览(36)
  • MATLAB 利用RANSAC对多项式进行点拟合 (32)

    通过对给定的一小组点进行抽样并生成多项式拟合,得到多项式系数 P。返回 maxRange 中具有最多 inlier 值的拟合。如果找不到匹配,则返回空的 P。该函数使用 M 估计量样本一致性(MSAC)算法,一种随机样本一致性(RANSAC)算法的变体来拟合数据。 主要使用的函数和内部的参数含义

    2024年02月15日
    浏览(34)
  • numpy 多项式函数回归与插值拟合模型;ARIMA时间序列模型拟合

    参考: https://blog.csdn.net/mao_hui_fei/article/details/103821601 1、多项式函数回归拟合 x ^3+ x ^2… 2、多项式函数插值拟合 对于插值函数 interp1d(phone_time, phone_x, kind=‘cubic’),无法直接获取多项式的参数与具体函数表达式。这是因为该函数使用样条插值方法,它的内部实现是基于一组数

    2024年02月16日
    浏览(41)
  • 使用R语言进行多项式回归、非线性回归模型曲线拟合

    对于线性关系,我们可以进行简单的线性回归。对于其他关系,我们可以尝试拟合一条曲线。 相关视频 曲线拟合是构建一条曲线或数学函数的过程,它对一系列数据点具有最佳的拟合效果。 使用示例数据集 看起来我们可以拟合一条曲线。 我们可以看到每条曲线的拟合程度

    2024年02月09日
    浏览(27)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包