调用matlab曲线拟合工具箱,自定义函数预测人口数量

这篇具有很好参考价值的文章主要介绍了调用matlab曲线拟合工具箱,自定义函数预测人口数量。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

拟合所求函数值不需要在已知点精确等于原始函数值,目的为了使用更简单的函数更低次的多项式表示原函数。相比插值,面对大量节点情况下选择拟合求函数曲线不失为一种更好的方法,拟合得到的曲线为一条确定的曲线。

现有一组数据分布如下图:

调用matlab曲线拟合工具箱,自定义函数预测人口数量

 我们要求一条直线/曲线(高次多项式方法)进行表示y与x之间的关系假设该拟合曲线为:

调用matlab曲线拟合工具箱,自定义函数预测人口数量

求解该曲线即求各样本点与曲线距离的最小值时的k b值,表达式:

调用matlab曲线拟合工具箱,自定义函数预测人口数量

 

不用绝对值(绝对值不方便求导)、不用三次方(存在误差正负抵消的情况不满足目的)、不用四次方(避免极端数据对拟合曲线的影响)

令:

现在要找k b使L最小,即令L对k、b求偏导,当偏导为0时解得的k b即为所需的值,计算公式如下:

调用matlab曲线拟合工具箱,自定义函数预测人口数量

调用matlab曲线拟合工具箱,自定义函数预测人口数量

同理计算得到

下面使用该公式计算拟合曲线的k b代码如下:

load data.mat
plot(x,y,'o');
xlabel('x的值');
ylabel('y的值');
n = size(x,1);
k = (n*sum(x.*y)-sum(x)*sum(y))/(n*sum(x.*x)-sum(x)*sum(x));
b = (sum(x.*x)*sum(y)-sum(x)*sum(x.*y))/(n*sum(x.*x)-sum(x)*sum(x));
hold on;
grid on;%显示网格线
xx = 2.5:0.1:7;
yy = k*xx+b;
plot(xx,yy,'-');

结果如下图:

调用matlab曲线拟合工具箱,自定义函数预测人口数量

下面使用matlab自带的曲线拟合工具箱根据以往数据预测后30年人口数量,

首先导入数据绘制出1790-2000年的人口变化predict_population.m:

%导入数据
year = 1790:10:2000;
population = [3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,38.6,50.2,62.9,76.0,92.0,106.5,123.2,131.7,150.7,179.3,204.0,226.5,251.4,281.4];
plot(year,population,'o');

调用matlab曲线拟合工具箱,自定义函数预测人口数量

运行代码 :cftool调出工具箱如下图:

调用matlab曲线拟合工具箱,自定义函数预测人口数量

 拟合方程出有很多方式可以选择,这里我们选择Custom Equation,在下方输入自己设定的函数:

调用matlab曲线拟合工具箱,自定义函数预测人口数量

其中和是两个拟合参数,Results处显示拟合结果,其中r = 0.02735 xm = 342.4。按上图指示获取matlab自动生成的代码,并保存到本地。这里自动保存为createFit.m文档,在别的文档直接调用函数即可,在predict_population.m运行代码 [fitresult, gof] = createFit(year, population)显示结果如下图:

调用matlab曲线拟合工具箱,自定义函数预测人口数量

在得到拟合参数的基础上我们预测后30年的人口数据,代码如下:

%导入数据
year = 1790:10:2000;
population = [3.9,5.3,7.2,9.6,12.9,17.1,23.2,31.4,38.6,50.2,62.9,76.0,92.0,106.5,123.2,131.7,150.7,179.3,204.0,226.5,251.4,281.4];
t = 2001:2030;
xm = 342.4;   
r =  0.02735;
predictions = xm./(1+(xm./3.9-1).*exp(-r.*(t-1790)));  % 计算预测值(注意这里要写成点乘和点除,这样可以保证按照对应元素进行计算)
figure(2)
plot(year,population,'o',t,predictions,'.')  % 绘制预测结果图

结果如下图:

调用matlab曲线拟合工具箱,自定义函数预测人口数量文章来源地址https://www.toymoban.com/news/detail-485195.html

到了这里,关于调用matlab曲线拟合工具箱,自定义函数预测人口数量的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 数学建模-MATLAB神经网络工具箱实现数据拟合预测

    将数据集保存在矩阵data中 在APP页面找到Neural Net Fitting 3.输入与目标均为 data,Samples are 选择 Matrix rows 4.训练集和验证集的百分比可以自定义,一般默认 三种算法,各有优劣,一般默认第一个,点击Train进行训练 4.点击Performance 5.以此图为例,13.1572代表误差,误差越低越好,可

    2024年02月06日
    浏览(30)
  • 基于MATLAB的最小二乘法拟合与拟合工具箱使用教程(附完整代码与算法)

    给定一组数据满足某一函数模型,其中a为待定系数向量。 那么,最小二乘曲线拟合的目标就是:求出一组待定系数的值,使得以下表达式子最小: 在MATLAB中格式如下: 由以下MATLAB代码生成一组数据: 该组数据满足y(x),求出待定系数,使得目标函数的值为最小。 解: MATL

    2024年01月17日
    浏览(28)
  • 通过matlab自带的fmincon工具箱函数实现多维目标优化仿真

    目录 一、理论基础 二、核心程序 三、仿真结论         fmincon是matlab自带的优化工具箱函数之一,用于求解具有约束条件的多维目标优化问题。本文将详细介绍fmincon的用法,包括函数参数、优化模型的构建、约束条件的处理、求解结果的分析等。 一、函数参数 fmincon函数的

    2024年02月13日
    浏览(28)
  • 基于matlab实现生成模糊fis文件,包括模糊隶属函数和模糊规则等,不使用fuzzy工具箱

    目录 1.算法仿真效果 2.MATLAB核心程序 3.算法涉及理论知识概要 4.完整MATLAB matlab2022a仿真结果如下:          Zadeh创立的模糊数学,对不明确系统的控制有极大的贡献,自七十年代以后,一些实用的模糊控制器的相继出现,使得我们在控制领域中又向前迈进了一大步。模糊逻

    2024年02月12日
    浏览(28)
  • 基于Matlab的Robotics Toolbox工具箱的机器人仿真函数介绍(空间位姿表示与动力学)

    随着我们了解到机器人如何建立运动学模型和动力学模型之后,我们可以使用Matlab中的仿真工具箱内来对模型的准确性进行验证,并且可以通过内置的函数进行简单的轨迹规划和可视化观察,本节涉及到的工具箱是MATLAB自带的Robotics Toolbox工具箱。 平移与旋转函数: SE2(x,y,t

    2024年02月07日
    浏览(33)
  • MATLAB中CVX工具箱解决凸优化问题的基本知识——语法、变量声明、目标函数、约束条件、cvx编程错误及解决方法

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 本文是在最近学习MATLAB CVX工具箱解决凸优化问题时学到的一些知识点,分享出来供大家参考。 进行CVX编程时,会遇到各种各样意想不到又难以解决的报错问题,如果编程过程中遇到了很多cvx bug和错误,

    2024年02月08日
    浏览(35)
  • Matlab 优化工具箱

    语法:[x,fval,exitflag,output,lambda] = linprog(f,A,b,Aeq,beq,lb,ub,options) f、x、b、beq、lb 和 ub 是向量,A 和 Aeq 是矩阵。 示例1-1 : 语法:[x,fval,exitflag,output] = intlinprog(f,intcon,A,b,Aeq,beq,lb,ub,x0,options) f、x、intcon、b、beq、lb 和 ub 是向量,A 和 Aeq 是矩阵。 语法:x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub

    2024年02月02日
    浏览(41)
  • (转载)matlab遗传算法工具箱

            以下内容大部分来源于《MATLAB智能算法30个案例分析》,仅为学习交流所用。         遗传算法(genetic algorithm,GA)是一种进化算法,其基本原理是仿效生物界中的“物竞天择、适者生存”的演化法则。遗传算法是把问题参数编码为染色体,再利用迭代的方式进行选

    2024年02月07日
    浏览(36)
  • 【MATLAB第57期】基于MATLAB的双隐含层BP神经网络回归预测模型(无工具箱版本及工具箱版本对比)

    数据为案例数据 。103行样本,7输入1输出数据。 训练集数据的R2为:0.9022 测试集数据的R2为:0.87266 训练集数据的MAE为:1.8189 测试集数据的MAE为:2.1658 训练集数据的MBE为:-0.00088469 测试集数据的MBE为:0.3059 数据与无工具版本相同,数据顺序也相同。 训练集数据的R2为:1 测试

    2024年02月16日
    浏览(31)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包