matlab_数学实验_实验报告_数据拟合
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据的分析之数据的拟合
一、实验项目:Matlab 数据拟合 二、实验目的和要求
1、掌握用matlab 作最小二乘多项式拟合和曲线拟合的方法。
2、通过实例学习如何用拟合方法解决实际问题,注意差值方法的区别。
3、鼓励不囿于固定的模式或秩序,灵活调整思路,突破思维的呆板性,找到打破常规的解决方法。并在文献检索 动手和动脑等方面得到锻炼。
三、实验内容
操作一:Malthus 人口指数增长模型
用以上数据检验马尔萨斯人口指数增长模型,根据检验结果进一步讨论马尔萨斯人口模型的改进。
马尔萨斯模型的基本假设是人口的增长率为常数,记为r 。记时刻t 的人口为()x t ,且初始时刻的人口为x 0,于是得到如下微分方程
(0)dx rx
dt
x x ⎧=⎪⎨⎪=⎩ 需要先求微分方程的解,再用数据拟合模型中的参数。
一、分析
有这个方程很容易解出0()*rt
x t x e =
r>0时,是表示人口箭杆指数规律随时间无限增长,称为指数增长模型。 将上式取对数,可得y=rt+a ,y=lnx ,a=lnx0 二、用matlab 编码
t=1790:10:1980;
x=[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 106.5 123.2 131.7 150.7 179.3 204.0 226.5]; p=polyfit(t,log(x),1); r=p(1) x0=exp(p(2)) x1=x0.*exp(r.*t); plot(t,x,'r',t,x1,'b')
三、结果和图像 0.0214r =
0 1.2480016x e =-
1780
1800182018401860188019001920194019601980
050
100
150
200
250
300
350
操练二:旧车价格预测
分析用什么形式的曲线来拟合数据,并预测使用4、5年后的轿车平均价格大致为多少。 一、分析
用matlab 编码绘制出点图,预测图像大致形状。
12345678910
分析图形呈现对数形状。 用函数
()*log(b *)y x a x c =+来拟合以上数据。
二、用matlab 编码
function f=curvefunl(k,xdata)
f=k(1)*log(k(2)*xdata)+k(3); %ÆäÖÐk(1)=a,k(2)=b,k(3)=c;
xdata=1:1:10;
ydata=[2615 1943 1494 1087 765 538 484 290 226 204]; k0=[1,1,0];
k=lsqcurvefit('curvefunl',k0,xdata,ydata) xi=linspace(0,10,100); yi=curvefunl(k,xi);
plot(xdata,ydata,'ro',xi,yi) xlable('x'),ylable('y=f(x)'), title('nonlinear curve fitting')
三、结果和图像
a=1.0e+003 * -1.1101 b=1.0e+003 *0.0005 c= 1.0e+003 *1.8307
012345678910
1000
2000
3000
4000
5000