非线性规划lsqcurvefitWord文档下载推荐.docx

上传人:b****2 文档编号:13539542 上传时间:2022-10-11 格式:DOCX 页数:12 大小:41.68KB
下载 相关 举报
非线性规划lsqcurvefitWord文档下载推荐.docx_第1页
第1页 / 共12页
非线性规划lsqcurvefitWord文档下载推荐.docx_第2页
第2页 / 共12页
非线性规划lsqcurvefitWord文档下载推荐.docx_第3页
第3页 / 共12页
非线性规划lsqcurvefitWord文档下载推荐.docx_第4页
第4页 / 共12页
非线性规划lsqcurvefitWord文档下载推荐.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

非线性规划lsqcurvefitWord文档下载推荐.docx

《非线性规划lsqcurvefitWord文档下载推荐.docx》由会员分享,可在线阅读,更多相关《非线性规划lsqcurvefitWord文档下载推荐.docx(12页珍藏版)》请在冰豆网上搜索。

非线性规划lsqcurvefitWord文档下载推荐.docx

1.04

1913

1.95

2.82

1.68

1901

1.18

1.06

1.08

1914

2.01

3.24

1.65

1902

1.29

1.16

1915

2.00

1.62

1903

1.30

1.22

1916

2.09

3.61

1.86

1904

1.27

1.17

1917

1.96

4.10

1.93

1905

1.42

1.37

1918

2.20

4.36

1906

1.50

1.44

1.39

1919

2.12

4.77

1907

1.52

1.53

1.47

1920

2.16

4.75

1.90

1908

1.46

1.57

1921

2.08

4.54

1.58

1909

1.60

2.05

1.43

1922

2.24

1.67

1910

1.69

2.51

1923

2.56

4.58

1.82

1911

1.81

2.63

1.59

1924

2.34

1912

2.74

1.66

1925

2.45

1.61

1926

2.58

1.64

第一种方法:

由于产值Q、资金K、劳动力L之间满足著名的Cobb-Douglas生产函数关系:

1

我们可以用MATLAB软件中的curvefit()程序来作数据拟合,即寻求函数Q(K,L)中的未知参数a,α,β,使这个函数尽量逼近表1所给出的统计数据。

现在我们就根据curvefit()函数编以下程序

程序文件a1.m如下

a=[1.051.181.291.301.301.421.501.521.461.601.691.811.931.952.012.002.091.962.202.122.162.082.242.562.342.452.58];

y=[1.041.061.161.221.271.371.441.531.572.052.512.632.742.823.243.243.614.104.364.774.754.544.544.584.584.584.54;

1.051.081.181.221.171.301.391.471.311.431.581.591.661.681.651.621.861.931.961.951.901.581.671.821.601.611.64];

x0=[0.1,0.1,0.2];

x=curvefit('

curvefun'

x0,y,a)

其中的函数M——文件curvefun.m如下

functiona=curvefun(x,y)

a=x

(1)*(y(1,:

).^x

(2)).*(y(2,:

).^x(3));

运行a1.m可得以下结果

x=

1.22460.4612-0.1277

则可以得到

a=1.2246b=0.4612c=-0.1277

于是公式变为

Q(K,L)=1.2246K0.4612L-0.1277

这就是产值Q随资金K、劳动力L的变化规律。

如果想得到更直观的关系也可以画出他们之间的关系图形。

在a1.m中加如下命令

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

surf(M,N,a);

xlabel('

K'

),ylabel('

L'

),zlabel('

Q'

们知道以上用的MATLAB的convefit()函数,可以根据需要创建各自的函数去逼近已知数据。

而不象函数polyfit()是用多项式去逼近已知数据。

但是用convefit()必须先确定函数的形式,然后再确定参数。

所以有一个确定函数的过程,本题由于在经济学上已经知道产值Q、资金K、劳动力L之间满足著名的Cobb-Douglas生产函数关系,因此就省略了机理分析确定函数形式的这个过程。

若实际问题的机理不清楚,或太复杂,就需要我们自己去假设,去大致确定。

用polyfit()就没有以上麻烦的步骤(因为他有确定的形式,只需要确定未知参数)。

但正因为这样简单,决定了他解决问题的粗躁性。

但有一点可以知道,convefit()函数可以解决polyfit()函数所能解决的问题。

第二种方法:

由于产值Q、资金K、劳动力L之间有关系

Q(K,L)=aKαLβ

注意到该等式两边取对数后,lnQ是lnK和lnL的线性函数,即

lnQ=lna+αlnK+βlnL;

于是,可用线性函数拟合的方法确定未知参数x=[lnaαβ]。

建立M文件:

Q=[1.051.181.291.301.301.421.501.521.461.601.691.811.931.952.012.002.091.962.202.122.162.082.242.562.342.452.58];

O=log([1.041.061.161.221.271.371.441.531.572.052.512.632.742.823.243.243.614.104.364.774.754.544.544.584.584.584.54;

...

1.051.081.181.221.171.301.391.471.311.431.581.591.661.681.651.621.861.931.961.951.901.581.671.821.601.611.64]);

x=leastsq('

funleast'

x0,[],[],O,log(Q));

a=exp(x

(1)),

alfa=x

(2),

beda=x(3),

得出:

a=1.1766,α=0.4153,β=0.0619.

两种方法的比较:

由于两种方法作出的结果不同,我们可以用拟合出来的函数与以给数据点的最小平方误差来评判两结果的优劣。

在程序a1.m后面增加几条语句

f1=curvefun(x,y);

e1=sum((a-f1).*(a-f1))

x2=[1.1766,0.4153,0.0619];

f2=curvefun(x2,y)

e2=sum((a-f2).*(a-f2))

输出e1=0.4230,e2=0.4456。

可见第一种方法得出的结果好一些。

即我们应采用关系式

Q(K,L)=1.2246K0.4612L-0.1277

作为产值Q随资金K、劳动力L的变化规律。

>

y=[1.041.061.161.221.271.371.441.531.572.052.512.632.742.823.243.243.614.104.364.774.754.544.544.584.584.584.54;

x=lsqcurvefit('

curvefun1'

x0,y,a)

f=

Columns1through15

0.10140.10210.10490.10610.10570.10880.11080.11270.11040.11540.12010.12090.12240.12310.1243

Columns16through27

0.12390.12870.13130.13260.13360.13290.12750.12890.13130.12790.12810.1284

1.18591.14581.21831.36752.11241.90511

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工程科技 > 冶金矿山地质

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1