数学建模实验报告
淮阴工学学院
数理学院数学建模与实验课程实验报告
实验名称五、非线性规划实验地点26#114 日期2014-10-20
姓名班级学号成绩
[1] 学习非线性规划的建模方法;
[2] 掌握建立非线性规划模型的求解方法;
[3] 熟悉MATLAB软件求解非线性规划模型的基本命令;
[4]了解建立非线性规划模型的全过程,与线性规划比较其难点何在。
通过该实验的学习,使学生掌握最优化技术,认识面对什么样的实际问题,提出假设和建立优化模型,并且使学生学会使用MATLAB软件进行非线性规划模型求解的基本命令,并进行灵敏度分析。解决现实生活中的最优化问题是本科生学习阶段中一门重要的课程,因此,本实验对学生的学习尤为重要。
【实验要求】
[1]独立完成各个实验任务;
[2]实验的过程保存成.m 文件,以备检查;
[3]完成实验报告。
【实验内容】
1.建立非线性规划模型的基本要素和步骤;
2.熟悉使用MATLAB命令对非线性规划模型进行计算与灵敏度分析;
3.学会计算无约束优化问题和有约束优化问题的技巧。
【实验步骤】
1.开启MATLAB软件平台,开启MATLAB编辑窗口;
2.根据问题,建立非线性规划模型,并编写求解规划模型的M文件;
3.保存文件并运行;
4.观察运行结果(数值或图形),并不断地改变参数设置观察运行结果;
5.根据观察到的结果和体会,写出实验报告。
【实验要求与任务】
根据实验内容和步骤,完成以下实验,要求写出实验报告(实验目的→问题→数学模型→算法与编程→计算结果→分析、检验和结论)B组
A城和B城之间准备建一条高速公路,B城位于A城正南和正东120公里交汇处,它们之间有东西走向连绵起伏的山脉。公路造价与地形特点有关,图1给出了整个地区的大致地貌情况,显示可分为三条沿东西方向的地形带。已知每个地形带的造价如下:
、22(单位:公里),P点坐标为:(44, 60)(坐标系原点为O,OB为X轴,OA 为Y轴,其中r的数值为你学号后2位+10)。高速公路转弯角度至少为1400,否则会引进交通事故。
你的任务是建立一个数学模型,在给定三种地形上每公里的建造费用的情况下,确定最便宜的路线。图中直线AB显然是路径最短的,但不一定最便宜。请你解决下面2个问题:
(1)你如何修建高速公路,使得总费用最少。
(2)如果道路必须通过一个已知地点P,你如何修建高速公路,使得总费用最少
一、实验目的
根据题目要求,求出符合条件的最佳方案
二、问题
(1)你如何修建高速公路,使得总费用最少。
(2)如果道路必须通过一个已知地点P,你如何修建高速公路,使得总费用最少
三、数学模型
假设路在不同种类型的地形交界处转向,设M1,M2,M3,M4分别为转弯地点,则:
A(0,90);M1(x1,68);P(44,60);M2(x2,51);M3(x3,38);M4(x4,22);B(120,0)。
根据已知条件,建立非线性规划模型:
min y = 500(AM1+M4B) + 800(M1M2+M3M4) + 1200M2M3
s.t.
;
;
第二问中要过P点,应加一个条件为:
四、算法与编程
(1)编写函数文件,作为约束条件:function[c, ceq] = test5_2(x)
AM1 = sqrt(x(1)^2+529);
M1M2 = sqrt((x(2)-x(1))^2+289);
M2M3 = sqrt((x(3)-x(2))^2+169);
M3M4 = sqrt((x(4)-x(3))^2+256);
M4B = sqrt((120-x(4))^2+484);
AM2 = sqrt(x(2)^2+1600);
M1M3 = sqrt((x(3)-x(1))^2+900);
M2M4 = sqrt((x(4)-x(2))^2+841);
M3B = sqrt((120-x(3))^2+1444);
y1 = (AM1^2+M1M2^2-AM2^2)/(2*AM1 *M1M2);
y2 = (M1M2^2+M2M3^2-M1M3^2)/(2* M1M2*M2M3);
y3 = (M2M3^2+M3M4^2-M2M4^2)/(2* M2M3*M3M4);
y4 = (M3M4^2+M4B^2-M3B^2)/(2*M3 M4*M4B);
c = [y1 - cos(7*pi/9);y2 - cos(7*pi/9);y
3 - cos(7*pi/9);y
4 - cos(7*pi/9);-1-y1;-1 -y2;-1-y3;-1-y4];
%Q1
ceq = [];
%Q2(除了这句语句外其余与test5_2.m
相同,所以只加上这一句,为test5_3.m) ceq = [9*(x(1)-x(2))-17*(44-x(2))];
end
(2)编写函数文件,作为目标函数:function f = test5_1(x)
AM1 = sqrt(x(1)^2+529);
M1M2 = sqrt((x(2)-x(1))^2+289);
M2M3 = sqrt((x(3)-x(2))^2+169);
M3M4 = sqrt((x(4)-x(3))^2+256);M4B = sqrt((120-x(4))^2+484);
f = 500*(AM1+M4B)+800*(M1M2+M3M
4)+1200*M2M3;
end
(3)编写m文件,求解并画图:%%%%%%
clear all;
clc;
clf;
%%%%%%
format longg
[x1 fval1] = fmincon('test5_1',[60 60 6 0 60],[],[],[],[],[0 0 0 0],[120 120 120 120],'test5_2')
[x2 fval2] = fmincon('test5_1',[60 60 6 0 60],[],[],[],[],[0 0 0 0],[120 120 120 120],'test5_3')
X1 = [0 x1 120];
X2 = [0 x2 120];
Y = [91 68 51 38 22 0];
xx = linspace(0,120,10);
yc = linspace(68,68,10);
yd = linspace(51,51,10);
ye = linspace(38,38,10);
yf = linspace(22,22,10);
plot(X1,Y,X2,Y,'linewidth',2)
xlim([0 120]);
ylim([0 91]);
legend('Question 1','Question 2')
hold on
plot(44,60,'.','markersize',20)
plot(xx,yc,'k',xx,yd,'k',xx,ye,'k',xx,yf,'k','lin
ewidth',2)
text(40,58,'P')
五、计算结果 x1 =
47.1944 58.7399 63.9913 74.8578 fval1 =
100096.7243 x2 =
36.4843 52.4551 69.6724 90.8630 fval2 =
105610.3813
20406080100
1200102030405060708090
六、分析、检验与结论
(1)当M 1(47.1944,68);M 2(58.7399,51);M 3(63.9913,38);M 4(74.8578,22)时,有最小费用,为100096.7243万元。
(2)当M 1(36.4843,68);M 2(52.4551,51);M 3(69.6724,38);M 4(90.8360,22)时,经过P 点,有最小费用,为105610.3813万元。
(3)根据图像,可以看出规划的路径,符合角度小于140°的要求,所以可以认为这个答案就是最佳方案。