MATLAB 自定义函数拟合

MATLAB 自定义函数拟合

首先建立阻滞增长模型

syms x(t) r xm t0 x0
eqns=diff(x,t)==r*(1-x/xm)*x;
cons=x(t0)==x0;
y(t)=simplify(dsolve(eqns,cons));

然后导入数据

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

然后根据数据确定时间(单位:年)和人口初值(单位:百万)

t0=1790;
x0=3.9;
y(t)=subs(y);

建议以上代码在普通脚本或命令行输出,方便之后直接粘贴在工具箱中
(在实时脚本输出的公式粘贴需要大改,不太方便)
然后进入函数拟合工具箱

在这里插入图片描述

Fig 1.工具箱设置

然后点击左上角的 文件->Generate Code 生成可复用的函数
将函数文件保存在工作路径下后可使用下列代码使用函数去拟合其他数据,并利用拟合后的方程绘图
此处为了方便对比,使用原有数据进行拟合并往后预测30年

[fitresult, gof] = createFit_self(year, population)
t_pre=1790:10:2030;
plot(t_pre,fitresult(t_pre),year,population,'+')

在这里插入图片描述

Fig2 .函数预测图像
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值