数学实验课后习题5.6解答
5.6实验
§5.6实验
5.6.1实验一:数据拟合MATLAB 人口指数增长模型中的参数 1790--1 980年间美国每隔10年的人口记录如表5.3:
用以上数
据检验马尔萨斯(Malthus )人口指数增长模型,根据检验结果进一步讨论马尔萨斯人口模型的改进.
********************************************************************
提示:Malthus 模型的基本假设是人口的增长率为常数,记为r 。记时刻t 的人口为x(t)(既x(t)为模型的状态变量),且初始时刻的人口为
x 0, 于是得到如下微分方程
需要先求微分方程的解,再用数据拟合模型中的参数,
******************************************************************** 解答:
1. 多项式拟合 代码:
x=1790:10:1980;
y=[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]; plot(x,y,'.' ) %散点图 hold on p=polyfit(x,y,4) x1=1760:5:1980; y1=polyval(p,x1); plot(x1,y1,'r' ) hold off x2=11;
y2=polyval(p,x2)
图像:
250
200
150
100
50
01780
[***********][***********]1980
图像5.6.1.1
1750
[***********]00
图像5.6.1.2
250
200
150
100
50
01750
[***********]00
图像5.6.1.3
2. 指数函数简单拟合 代码:
dsolve('Dx=r*x') ans =
C1*exp(r*t)
f=dsolve('Dx=r*x','x(0)=x0','t') f =
x0*exp(r*t)
function y=lihaibo(a,x) y=a(1).*exp(a(2).*x);
clc,clear
a0=[50,0.02];%赋予a 的初始值. x=[1790:10:1980];
y=[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];
a=lsqcurvefit('lihaibo' ,a0,x,y) xi=[1790:10:1980]; yi=lihaibo(a,x); plot(x,y,'.' ,xi,yi)
xlabel('x' ),ylabel('y=f(x)');
Optimization terminated: norm of the current step is less than OPTIONS.TolX. a =
0.0000 0.0190
300
250
200
y =f (x )
150
100
50
01780
[**************]0
1880x
[***********]80
图像5.6.1.4
3. 指数函数一般拟合 程序代码:
function f=renkouzengzhangzhishuhanshunihe(a,x) f=a(1)./(1+(a(1)./3.9-1)*exp(-a(2).*x));
clc x=0:10:190;
y=[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]; a0=[500,0];
a=lsqcurvefit('renkouzengzhangzhishuhanshunihe' ,a0,x,y) xi=0:10:300;
yi=renkouzengzhangzhishuhanshunihe(a,xi); plot(x,y,'*',xi,yi)
xlabel('t' ),ylabel('x=f(t)');
Optimization terminated: relative function value changing by less than OPTIONS.TolFun. a =
285.8924 0.0286
图像:
x =f (t )
050100
150t
200250300
5.6.2实验二:旧车价格预测
某年美国旧车价格的调查资料如表5.4 , 其中
x i 表示轿车的使用年数,y i 表示相应的平均价
格。试分析用什么形式的曲线来拟合上述的数据,并预测使用4、5年后轿车的平均价格大致为多少
1) 此方法为多项式拟合 解答: 程序代码:
x=[1 2 3 4 5 6 7 8 9 10]
y=[2615 1943 1494 1087 765 538 484 290 226 204]
xi=4.5;
yi=interp1(x,y,xi,'spline' ) plot(x,y,'.' ,xi,yi, '*') hold on p=polyfit(x,y,3) x1=1:0.0005:15; y1=polyval(p,x1); plot(x1,y1,'r' ) hold off x2=11;
y2=polyval(p,x2) yi =
916.5004 p =
1.0e+003 *
-0.0027 0.0800 -0.8528 3.3801 y2 =
139.6000
图像:
2) 此方法为反比例函数拟合 解答
程序代码:
function f=fanbilihanshu(t,x); f=t(1)./(t(2)*x+t(3));
x=[1 2 3 4 5 6 7 8 9 10];
y=[2615 1943 1494 1087 765 538 484 290 226 204]; t0=[1 1 1];
a=lsqcurvefit('fanbilihanshu' ,t0,x,y) xi=0:0.01:10;
yi=fanbilihanshu(a,xi); plot(x,y,'*',xi,yi)
Optimization terminated: relative function value changing by less than OPTIONS.TolFun. a =
-664.6854 -0.1478 -0.0948
图像:
80007000
[***********]001000
[1**********]0
3) 此方法为指数函数拟合 解答
程序代码:
function f=zhishuhanshu(t,x); f=t(1)*exp(-t(2)*x)+t(3);
x=[1 2 3 4 5 6 7 8 9 10];
y=[2615 1943 1494 1087 765 538 484 290 226 204]; t0=[1 2 3];
a=lsqcurvefit('zhishuhanshu' ,t0,x,y) xi=0:0.01:10; yi=zhishuhanshu(a,xi); plot(x,y,'*',xi,yi)
Optimization terminated: relative function value changing by less than OPTIONS.TolFun. a =
1.0e+003 *
3.5442 0.0003 -0.0130
图像:
40003500
[***********]005000
[1**********]0
4) 此方法为对数函数拟合 解答
程序代码:
function f=duishuhanshu(p,x); f=p(1)*log(p(2)*x)+p(3);
x=[1 2 3 4 5 6 7 8 9 10];
y=[2615 1943 1494 1087 765 538 484 290 226 204]; p0=[1 1 1];
q=lsqcurvefit('duishuhanshu' ,p0,x,y) xi=0:0.01:10; yi=duishuhanshu(q,xi); plot(x,y,'*',xi,yi)
Warning: Log of zero. > In duishuhanshu at 2
In duishuhanshudiaoyong at 6
Warning: Imaginary parts of complex X and/or Y arguments ignored. > In duishuhanshudiaoyong at 7
Optimization terminated: relative function value
changing by less than OPTIONS.TolFun. q =
1.0e+003 *
-1.1101 0.0005 1.9181
Warning: Log of zero. > In duishuhanshu at 2
In duishuhanshudiaoyong at 6 图像
80007000
[***********]001000
[1**********]0
5.6.3实验三:经济增长模型
增加生产、发展经济所依靠的主要因数有增加投资、增加劳动力以及技术革新等,在研究国民经济产值与这些因素的数量关系时,由于技术水平不像资金、劳动力那样容易量化,作为初步的模型,可认为技术水平不变,只讨论产值和资金、劳动力之间的关系。在科学技术发展不快的时候,如资本主义经济发展的前期,这种模型是有意义的。
用Q ,K ,L 分别表示产值、资金、劳动力,要寻求的数量关系Q (K ,L ),经过简化假设与分析,在经济学中,推导出一个著名的Cobb-Douglas 产生函数 Q (K , L ) =aK L , 0
α
β
(*)
式中α, β, a 要由经济统计数据确定。现有美国马萨诸塞州1900—1926年上述三个经济指数的统计数据,如表5.5,试用数据拟合的方法,求(*)式中的参数α
, β, a
****************************************************************
提示:由于(*)式对参数α, β, a 是非线性的,因此,可以有两种方式进行拟合,一是直接使用MATLAB 软件中的曲线拟合命令,另一个是将非线性函数转化成线性函数的形式,使用线性函数拟合。 解答:
程序代码如下
function a=curvefun(x,y)
a=x(1)*(y(1,:).^x(2)).*(y(2,:).^x(3));
a=[1.05 1.18 1.29 1.30 1.30 1.42 1.50 1.52 1.46 1.60 1.69 1.81 1.93 1.95 2.01 2.00 2.09 1.96 2.20 2.12 2.16 2.08 2.24 2.56 2.34 2.45 2.58];
y=[1.04 1.06 1.16 1.22 1.27 1.37 1.44 1.53 1.57 2.05 2.51 2.63 2.74 2.82 3.24 3.24 3.61 4.10 4.36 4.77 4.75 4.54 4.54 4.58 4.58 4.58 4.54;1.05 1.08 1.18 1.22 1.17 1.30 1.39 1.47 1.31 1.43 1.58 1.59 1.66 1.68 1.65 1.62 1.86 1.93 1.96 1.95 1.90 1.58 1.67 1.82 1.60 1.61 1.64]; x0=[0.1,0.1,0.2];
x=lsqcurvefit('curvefun' ,x0, y,a)
m=linspace(0,2.7,27);n=linspace(0,2.7,27); [M,N]=meshgrid(m,n); a=x(1)*(M.^x(2)).*(N.^x(3)); mesh(M,N,a);
xlabel('K' ),ylabel('L' ),zlabel('Q' )
Optimization terminated: relative function value changing by less than OPTIONS.TolFun. x =
1.2239 0.4610 -0.1259
图像:
Q
L
K
3
图5.6.3.1
Q
L
K
3
图5.6.3.2