数学实验七 -
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验七用MATLAB解无约束优化
【实验目的】
1.掌握MATLAB优化工具箱的基本用法,对不同的算法进行初步分析、比较。2.练习用无约束化方法建立和求解实际问题的模型(包括最小二乘拟合)。【实验内容】
第四题:
某海岛上有12个主要的居民点,每个居民点的位置(用平面坐标x,y表示,距离单位:km)和居住的人数(R)如下表所示。现在准备在海岛上建一个服务中心为居民提供各种服务,那么服务中心应该建在何处?
【模型建立与求解】
设服务中心的坐标为(x,y),所有居民到服务中心的距离之和为z,则有:Z=[R k∗ k=1~12;
本题就是求zmin,,这是一个无约束极小值的问题。
用MATLAB求解如下,首先建立exam0701.m源文件:
function z=exam0701(x,x0,y0,R)
z=0;
for i=1:12
z=z+R(i)*sqrt((x(1)-x0(i))^2+(x(2)-y0(i))^2);
end
主程序为:
X=[0, 8.2, 0.5, 5.7, 0.77, 2.87, 4.43, 2.58, 0.72, 9.76, 3.19, 5.55];
x=[0, 8.2, 0.5, 5.7, 0.77, 2.87, 4.43, 2.58, 0.72, 9.76, 3.19, 5.55];
y=[0, 0.5, 4.9, 5.0, 6.49, 8.76, 3.26, 9.32, 9.96, 3.16, 7.2, 7.88];
R=[600, 1000, 800, 1400, 1200, 700, 600, 800, 1000, 1200, 1000, 1100];
[x,fv,norm]=fminunc(@exam0701,[0,0],[],x,y,R)
输出结果为:
x =
3.601032422029356 6.514218493501284
fv =
4.423603549137507e+004
norm =
1
所以服务中心的坐标应为(3.6010,6.5142),此时,所有居民到服务中心的距离之和最小,最小值为4.4236e+004。所以服务中心应该建在(3.6010,6.5142)处。
第七题:
经济学中著名的Cobb-Douglas生产函数的一般形式为:
Q K,L=aKαLβ,0<α,β<1
其中,Q,K,L分别表示产值、资金、劳动力,式中α,β,a要由经济统计数据确定.现有《中国统计年鉴(2003 )》给出的统计数据如表,请分别用线性和非线性最小二乘法拟合式中的α,β,a,并解释α,β,a的含义。
表7.11
其中总产值取自“国内生产总值”,资金取自“固定资产投资”,劳动力取自“就业人员”)。
【模型建立与求解】
一.用线性最小二乘拟合求α,β,a的值。
由已知函数Q K,L=aKαLβ,为了得线性函数,我们在等式两端取对数。
于是有:logQ=αlogK+βlogL+loga
令:y=logQ , m=logK ,n=logL ,p=loga 得到:
y=αm+βn+p
现在我们要建立直线拟合模型求解α,β,a的值。与拟合函数比较
φ0=m ,φ1=n ,φ2=1
输入q、k、l的值,用matlab求解:
y=log(q);
m=log(k); n=log(l);
f=[m,n,ones(19,1)];
aa=inv(f'*f)*f'*y
aa =
0.659979317104676
1.268049810875644
-1.156358672651989
a=f\y
a =
0.659979317104729
1.268049810875208
-1.156358672651102
z=aa-a
z =
1.0e-012 *
-0.053068660577082
0.435873559467836
-0.886846152070575exp(a(3))
ans =
0.314629767509592
所以:α=0.6600 , β=1.2680 , a=0.3146
二.用非线性最小二乘拟合求α,β,a的值。
建立exam0703的M文件:
function f=exam0703(x,k,l,q0)
for i=1:19
f=x(3)*k(i)^(x(1))*l(i)^(x(2))-q0;
end
end
主程序为:
k =[0.0910 0.2543 0.3121 0.3792 0.4754 0.4410
0.4517 0.5595 0.8080 1.3072 1.7042 2.0019
2.2914 2.4941 2.8406 2.9854
3.2918 3.7314
4.3500]
l =[4.8179 4.9873 5.1282 5.2783 5.4334 5.5329
6.4749 6.5491 6.6152 6.6808 6.7455 6.8065
6.8965 6.9820
7.0637 7.1394 7.2085 7.3025 7.3740] q0 =[0.7171 0.8964 1.0202 1.1962 1.4928 1.6909
1.8548
2.1618 2.6638
3.4634
4.6759
5.8478
6.7885
7.4463 7.8345
8.2068
9.9468 9.7315 10.4791] x0=[0.5,0.5,0.5];
[x,norm,res]= lsqnonlin(@exam0703,x0,[],[],[],k,l,q0)
输出结果为:
x =
0.5104 1.0757 0.2553
norm =
217.2158
res =
Columns 1 through 12
3.9205 3.7412 3.6174 3.4414 3.1448 2.9467
2.7828 2.4758 1.9738 1.1742 -0.0383 -1.2102
Columns 13 through 19
-2.1509 -2.8087 -3.1969 -3.5692 -5.3092 -5.0939
-5.8415
所以:α=0.5104 , β=1.0757 , a=0.2553
α、β的解释:
α是劳动力产出的弹性系数,β是资本产出的弹性系数,从这个模型看出,决定工业系统发展水平的主要因素是投入的劳动力数、固定资产和综合技术水平(包括经营管理水平、劳动力素质、引进先进技术等).根据α和β的组合情况,它有三种类型:①α+β >1称为递增报酬型,表明按现有技术用扩大生产规模来增加产出是有利的.②α+β <1称为递减报酬型,表明按现有技术用扩大生产