数模实验第四版数据拟合与模型参数估计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数学模型实验—实验报告4
学院:河北大学工商学院专业:电气七班姓名:李青青
学号:2012484098 实验时间:2014/4/15 实验地点:B3-301
一、实验项目:数据拟合与模型参数估计
二、实验目的和要求
a.了解数据拟合的原理和Matlab中的有关命令。
Polfit:MATLAB函数:p=polyfit(x,y,n)
[p,s]= polyfit(x,y,n)
说明:x,y为数据点,n为多项式阶数,返回p为幂次从高到低的多项式系数向量p。x必须是单调的。矩阵s用于生成预测值的误差估计。(见下一函数polyval)
多项式曲线求值函数:polyval( )
调用格式:y=polyval(p,x)
[y,DELTA]=polyval(p,x,s)
说明:y=polyval(p,x)为返回对应自变量x在给定系数P的多项式的值。
[y,DELTA]=polyval(p,x,s) 使用polyfit函数的选项输出s得出误差估计Y DELTA。它假设polyfit函数数据输入的误差是独立正态的,并且方差为常数。则Y DELTA将至少包含50%的预测值。
Polyval
polyval函数的主要功能是多项式的估值运算,其语法格式为y = poly val(p,x),输入变量p是长度为n+1的向量,各元素是依次按降幂排列的多项式的系数,函数返回的是那次多项式p在x处的值,x可以是一个数,也可以是一个矩阵或者一个向量,在后两种情况下,该指令计算的是在X中任意元素处的多项式p的估值。
polyvalm的主要功能是用于matlab中多项式求值。其语法格式为y=polyvalm(a,A),其中a为多项式行向量表示,A为指定矩阵。
Lsqlin
约束线性最小二乘
函数lsqlin
格式x = lsqlin(C,d,A,b) %求在约束条件下,方程Cx = d的最小二乘解x。
x = lsqlin(C,d,A,b,Aeq,beq) %Aeq、beq满足等式约束,若没有不等式约束,则设A=[ ],b=[ ]。
x = lsqlin(C,d,A,b,Aeq,beq,lb,ub) %lb、ub满足,若没有等式约束,则Aeq=[ ],beq=[ ]。
x = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0) % x0为初始解向量,若x没有界,则lb=[ ],ub=[ ]。
x = lsqlin(C,d,A,b,Aeq,beq,lb,ub,x0,options) % options为指定优化参数
lsqcurvefit
最常见的调用格式如下:
X = LSQCURVEFIT(FUN,X0,XDATA,YDATA).
其中FUN为一个函数,已M文件或匿名函数存在。若FUN以M文件形式存在,那么FUN在调用语句中的格式为:@(x,xdata) FUN(x,xdata,c).@(x,xdata)中分别表示待求参数,xdata表示的是自变量,c是可以传递到函数里面的常数。Lsqnonlin:lsqnonlin解决非线性最小二乘问题,包括非线性数据拟合问题而不是计算的值f(x)(平方和),需要用户定义函数lsqnonlin求向量值函数然后,在矢量的术语,你可以重申这一优化问题
其中x是一个向量和f(x)是一个函数,返回一个向量值。
X = lsqnonlin(乐趣,X0)开始在点X0并找到一个最小的有趣的功能描述的平方和。快乐应该返回一个向量值不值的平方和。(算法隐含和广场的乐趣(X)。)
X = lsqnonlin(乐趣,X0,LB,UB)定义了一组上下对X设计变量的范围,所以,解决方案总是在范围≤x≤UB的LB。
X = lsqnonlin(乐趣,X0,LB,UB,选项)最大限度地减少结构中的优化选项指定的选项。使用optimset设置这些选项。通过空矩阵的LB和UB如果没有界限的存在。
【X,resnorm ] = lsqnonlin(……)返回x的平方范数的剩余价值的总和(意思:(X)。^ 2)。
【X,resnorm,残余] = lsqnonlin(……)返回剩余的娱乐价值观(x)在解x
x = lsqnonneg
x = lsqnonneg(C,D)返回向量x的最小范数(C * XD)受x > = 0。C 和D必须是真实的。
x = lsqnonneg(C,D,x0 X0)使用为出发点,如果所有的X0 > = 0;否则,则使用默认值。默认的出发点是原点(默认是用来当X0 = = []或只有两个输入参数提供)。
x = lsqnonneg(C,D,X0,选项)最大限度地减少在结构优化参数指定的选项。你可以使用optimset函数定义这些参数。lsqnonneg使用这些选项的结构域:
displayLevel显示。”“不显示输出;最后的“仅显示最终的输出;“通知”(默认)显示输出只有当函数不converge.tolxtermination公差对X
【X,resnorm ] = lsqnonneg(……)返回的平方范数的剩余价值:规范(C * XD)^ 2
b. 练习模型参数估计
三、实验内容
根据美国人口从1790年到1990年间的人口数据(如下表),确定人口指数增长模型和Logistic模型中的待定参数,估计出美国2010年的人口,同时
画出拟合效果的图形。 表1 美国人口统计数据
提示:
指数增长模型:rt
e x t x 0
)(=
Logistic 模型:()011m
rt
m x x t x e x -=
⎛⎫
+- ⎪⎝⎭
解:模型一:指数增长模型。Malthus 模型的基本假设下,人口的增长率为常数,记为r ,记时刻t 的人口为 )(t x ,(即)(t x 为模型的状态变量)且初始时
刻的人口为0x ,因为⎪⎩⎪⎨⎧==0
)0(x x rx
dt dx 由假设可知0()rt x t x e = 经拟合得到: