当前位置:文档之家› 数学实验8月13日作业

数学实验8月13日作业

1.取不同的初值计算下列平方和形式的非线性规划,尽可能求出所有局部极小点,进 而找出全局极小点,并对不同算法(搜索方向、搜索步长、数值梯度与分析梯度等)的结 果进行分析、比较。

(2). ()()22222121212min 12114949812324681x x x x x x +-++++-,(4).()()2122222312123min10010,1x x x x x x θ⎧⎫⎡⎤⎪⎪-++-+⎡⎤⎨⎬⎢⎥⎣⎦⎣⎦⎪⎪⎩⎭,其中 ()()()211122111arc ,02,11arc ,022tg x x x x x tg x x x πθπ⎧>⎪⎪=⎨⎪+<⎪⎩.解:(2)由题意设()()()2222212121212,12114949812324681f x x x x x x x x =+-++++-先求12,f f x x δδδδ(文件名为a.m ),再求1200f x f x δδδδ⎧=⎪⎪⎨⎪=⎪⎩(文件名为b.m ),解得近似解为12 2.900.22x x =-⎧⎨=⎩或12 3.460.08x x =⎧⎨=-⎩或1220.6234.53x x =⎧⎨=-⎩或1221.1836.47x x =-⎧⎨=-⎩或120.280.28x x =⎧⎨=⎩或1222.3717.49x x =⎧⎨=-⎩或1224.1317.92x x =-⎧⎨=-⎩或120.8323.72x x =-⎧⎨=-⎩或120.1747.72x x =-⎧⎨=-⎩,取初值()0 2.90,0.22x =-(exam0705grad_run.m )利用matlab 计算可得以下表中数据:当取初值()0 3.46,0.08x =-(exam07051grad_run.m )利用matlab 计算可得以下表中数据:取不同初值求解(只需在程序中不断改变初值即可)。

当初值取()021.18,36.47x =--时可得到以下数据综上全局极小点为()-21.181,-36.468,局部极小点()-2.8996,0.21584,()-21.181,-36.468。

(2)8. 取不同的初值计算下列非线性规划,尽可能求出所有局部极小点,进而找出全局极小点,并对不同算法(搜索方向、搜索步长、数值梯度与分析梯度等)的结果进行分析、比较。

(2)11122211min ()()()()T Tz x a x a c x a x a c =----+--+,2x ∈ℜ 其中c = (0.7,0.73),T 1a = (4,4) ,T 2 a = (2.5,3.8)。

解:(2)1. ①设计程序如exam070702fun.m.建立功能函数,便于调用。

function [f,g]=exam070702fun(x) a1=[4,4]'; a2=[2.5,3.8]'; c=[0.7,0.73];f=1/((x-a1)'*(x-a1)+c(1))-1/((x-a2)'*(x-a2)+c(2)); if nargout>1g(1)=2*(x(1)-a1(1))/((x(1)-a1(1))^2+(x(2)-a1(2))^2+c(1))^2+2*(x(1)-a2(1))/((x(1)-a2(1))^2+(x(2)-a2(2))^2+c(2))^2 %该为梯度函数的两个方向 g(2)=2*(x(2)-a1(2))/((x(1)-a1(1))^2+(x(2)-a1(2))^2+c(1))^2+2*(x(2)-a2(2))/((x(1)-a2(1))^2+(x(2)-a2(2))^2+c(2))^2 end②设计脚本程序如exam070702.m ,opt1=optimset('LargeScale','off','MaxfunEvals',1000,'Tolfun',1e-8,'To lX',1e-8,'Gradobj','on');opt2=optimset(opt1,'HessUpdate','dfp');opt3=optimset(opt1,'HessUpdate','steepdesc');opt4=optimset(opt1,'lineSearchType','cubicpoly'); opt5=optimset(opt5,'HessUpdate','dfp');opt6=optimset(opt5,'HessUpdate','steepdesc');%x0=[3,3]';%x0=[4,4]';%x0=[5,5]';%x0=[2,7]';%x0=[10,10]';%x0=[50,20]';%x0=[1,10]';%x0=[50,100]';%x0=[43,2]';x0=[20,43]';[x1,v1,exit1,out1]=fminunc(@exam070702fun,x0,opt1) [x2,v2,exit2,out2]=fminunc(@exam070702fun,x0,opt2)[x3,v3,exit3,out3]=fminunc(@exam070702fun,x0,opt3)[x4,v4,exit4,out4]=fminunc(@exam070702fun,x0,opt4)[x5,v5,exit5,out5]=fminunc(@exam070702fun,x0,opt5)[x6,v6,exit6,out6]=fminunc(@exam070702fun,x0,opt6)③运行结果及分析。

得出答案;制成表格初值设定为(20,43)可以看到采用分析方法(给定梯度函数) 比起默认的数值方法得到结果所需要的调用次数明显减少。

DFP算法的函数调用次数较少。

改变初值,采用默认搜索方向BFGS,默认搜索步长,给定梯度函数,得到的结果结论:由上面计算结果得出,无论采用那种计算方法最终都可以得到函数的极小值的,而采用DFP算法函数的调用次数较少;分析法计算梯度函数效果较好;最终结果取哪一个局部极值同初值密切相关。

5.某分子由25 个原子组成,并且已经通过实验测量得到了其中某些原子对之间的距离解:每个原子的位置都是未知的,在坐标系中只有相对的位置参数,不妨固定原子1的坐标为(0,0)。

并且分子可以在平面内任意旋转,很难确定每个原子的绝对位置,表中给出了52组数据,可以得到52个方程,而未知数个数为48个(每个原子的x ,y 坐标)。

属于超定方程组,没有确定的解,只能求得最优解。

故采用最小方差标准来求最小二乘解得到最优解。

②模型建立设第i 个点所在的位置为(,)i i x y ,因为所求的是各原子间的位置关系,可以设定第一个点坐标为11(,)(0,0)x y =,然后再计算其他原子的位置(,)i i x y ,使它在最大程度上满足上表中提供的数据,即让222210,z=()()i i ij i jx x y y d ⎡⎤-+--⎣⎦∑达到最小,求得的坐标值就是最优的解。

其中ij d 表示第i 个原子和第j 个原子之间的距离,数据如上表所示,问题转化为无约束优化;222210,min=()()i i ij i jx x y y d ⎡⎤-+--⎣⎦∑③算法设计根据题目中所给的数据,利用matlab 编写函数文件(文件名为diatance.m ),再 主程序为exam5.m, 输出结果每个原子的位置如下(即第二个原子的位置为(1.2378,0.0746),第三个原子为(1,6142,1,。

1211),……) p =0.3339 -1.2619 1.5092 -1.3714 0.8438 -0.4442 0.6956 -0.88571.3388 -0.6804 0.6158 -0.6627 0.9014 -0.9378 0.3552 -0.4180 1.2183 -0.6526 0.6709 -0.4580 -0.4305 -0.0207 0.2989 -0.7737 0.5112 -0.7080 0.5654 -0.2765 0.6723 -1.7884 -0.1065 -1.3723 1.2895 -1.6922 0.9565 -1.2228 0.9735 -0.7787 1.2460 -0.2878 1.4318 -1.0946 1.9280 -0.4652 1.5063 -0.2325 0.9215 -0.8439为了形象直观地表示出各点的位置,画出如下的散点图-1.8-1.6-1.4-1.2-1-0.8-0.6-0.4-0.207. 经济学中著名的柯布—道格拉斯(Cobb —Douglas )生产函数的一般形式为(,)Q K L aK L αβ=,0α<,1β>其中Q ,K ,L 分别表示产值、资金、劳动力,式中α,β,a 要由经济统计数据确定。

现有《中国统计年鉴(2003)》给出的统计数据如下表,请用非线性最小二乘拟合求出式中的α,β,a ,并解释α,β的含义。

业人员”。

解:①模型分析题目已经确定了此数据的拟合形式为Cobb-Douglas 生产函数方程,再以这些数据分别给出线性与非线性的最小二乘拟合,则确定式中的a ,β,α。

在构造函数时,以x 向量的分量分别表示a ,α,β,以t 矩阵的第一列表示资金K ,第二列表示劳动力L 。

②非线性拟合程序代码先用mutlab 编写函数(文件名为examfun7.m ),主程序为exam7.m,输出结果如下 x =0.8345 0.7736 0.7312norm =2.7489res =Columns 1 through 8-0.3048 0.0404 0.1000 0.1339 0.1254 -0.1437 -0.0866 -0.0577Columns 9 through 160.1528 0.6527 0.4133 -0.0455 -0.2861 -0.4392 -0.0194 -0.0217Columns 17 through 19-1.0567 0.1571 0.7350 ef =3out =firstorderopt: 4.7566e-004 iterations: 14 funcCount: 60 cgiterations: 0algorithm: 'large-scale: trust-region reflective Newton' message: [1x460 char]非线性拟合给出的结果,a=0.83444,=0.7736α ,=0.73117β,其误差平方和norm=2.7489,稍大。

相关主题