数学建模实验答案简单的优化模型.docx

上传人:b****5 文档编号:6224077 上传时间:2023-01-04 格式:DOCX 页数:18 大小:1.14MB
下载 相关 举报
数学建模实验答案简单的优化模型.docx_第1页
第1页 / 共18页
数学建模实验答案简单的优化模型.docx_第2页
第2页 / 共18页
数学建模实验答案简单的优化模型.docx_第3页
第3页 / 共18页
数学建模实验答案简单的优化模型.docx_第4页
第4页 / 共18页
数学建模实验答案简单的优化模型.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

数学建模实验答案简单的优化模型.docx

《数学建模实验答案简单的优化模型.docx》由会员分享,可在线阅读,更多相关《数学建模实验答案简单的优化模型.docx(18页珍藏版)》请在冰豆网上搜索。

数学建模实验答案简单的优化模型.docx

数学建模实验答案简单的优化模型

实验03简单的优化模型(2学时)

(第3章简单的优化模型)

1.生猪的出售时机p63~65

目标函数(生猪出售纯利润,元):

Q(t)=(8–gt)(80+rt)–4t–640

其中,t≥0为第几天出售,g为每天价格降低值(常数,元/公斤),r为每天生猪体重增加值(常数,公斤)。

求t使Q(t)最大。

1.1(求解)模型求解p63

(1)图解法

绘制目标函数

Q(t)=(8–gt)(80+rt)–4t–640

的图形(0≤t≤20)。

其中,g=0.1,r=2。

从图形上可看出曲线Q(t)的最大值。

(2)代数法

对目标函数

Q(t)=(8–gt)(80+rt)–4t–640

用MATLAB求t使Q(t)最大。

其中,r,g是待定参数。

(先对Q(t)进行符号函数求导,对导函数进行符号代数方程求解)

然后将代入g=0.1,r=2,计算最大值时的t和Q(t)。

要求:

①编写程序绘制题

(1)图形。

②编程求解题

(2).

③对照教材p63相关内容。

相关的MATLAB函数见提示。

★要求①的程序和运行结果:

程序:

t=0:

1:

30;

g=0.1;r=2;

Q=(8-g.*t).*(80+r.*t)-4.*t-640;

plot(t,Q)

图形:

★要求②的程序和运行结果:

程序:

symsgtr;

Q=(8-g.*t).*(80+r.*t)-4.*t-640;

q=diff(Q,t);

q=solve(q);

g=0.1;r=2;

tm=eval(q)

Q=(8-g.*tm).*(80+r.*tm)-4.*tm-640

运行结果:

1.2(编程)模型解的的敏感性分析p63~64

对1.1中

(2)所求得的符号表达式t(r,g),分别对g和r进行敏感性分析。

(1)取g=0.1,对t(r)在r=1.5:

0.1:

3上求r与t的关系数据,绘制r与t的关系图形(见教材p65)。

(2)取r=2,对t(g)在g=0.06:

0.01:

0.15上求g与t的关系数据,绘制g与t的关系图形(见教材p65)。

要求:

分别编写

(1)和

(2)的程序,调试运行。

★给出

(1)的程序及运行结果:

程序:

symsgtr;

Q=(8-g.*t).*(80+r.*t)-4.*t-640;

q=diff(Q,t);

q=solve(q);

g=0.1;r=1.5:

0.1:

3;

t=eval(q);

plot(r,t)

[r;t]

数值结果:

图形结果:

★给出

(2)的程序及运行结果:

程序:

symsgtr;

Q=(8-g.*t).*(80+r.*t)-4.*t-640;

q=diff(Q,t);

q=solve(q);

r=2;g=0.06:

0.01:

0.15;

t=eval(q);

plot(g,t)

[g;t]

数值结果:

图形结果:

2.(编程)冰山运输模型求解p77~81

按函数调用顺序。

(1)每立方米水所需费用

u为船速,V0为冰山的初始体积。

(2)冰山运抵目的地后可获得水的体积

为冰山抵达目的地所需天数。

(3)第t天冰山球面半径融化速率:

(4)运送冰山费用

为冰山抵达目的地所需天数。

(5)船的日租金

参照教材p81的表4,求不同V0,u下每立方米水的费用。

下面是不完整的MATLAB程序:

functiony=mainfun()

clc;

VV0=[10^75*10^610^6];%冰山的初始体积,3种

uu=[33.544.55];%船速,5种

y=zeros(length(VV0),length(uu));%初始化

fori=1:

length(VV0)

forj=1:

length(uu)

y(i,j)=Y(uu(j),VV0(i));

end

end

y=round(10000*y)/10000;%四舍五入取整。

取小数点后4位数字

%以下函数的输入输出均为标量

functiony=Y(u,V0)%

(1)

y=S(u,V0)/W(u,V0);

functiony=W(u,V0)%

(2)编写该程序

 

functiony=r(t,u)%(3)

ift>=0&&t<=1000/6/u

y=1.56*10^(-3)*u*(1+0.4*u)*t;

elseift>1000/6/u

y=0.2*(1+0.4*u);

else

error('k不能小于0!

');%显示出错信息并退出运行

end

functiony=S(u,V0)%(4)

T=400/u;

y=0;

fort=1:

T

rr=(3*V0/4/pi)^(1/3);

fork=1:

t

rr=rr-r(k,u);

end

y=y+log10(rr);

end

y=400*f(V0)/u+7.2*u*(u+6)*(3*y-151/u);

functiony=f(V0)%(5)编写该程序

要求:

①编写所要求的程序。

②运行。

注:

第一个函数为主函数,没有输入参数,可直接执行

③结果与教材p81表4比较。

★完整的程序:

functiony=mainfun()

VV0=[10^75*10^610^6];

uu=[33.544.55];

y=zeros(length(VV0),length(uu));

fori=1:

length(VV0)

forj=1:

length(uu)

y(i,j)=Y(uu(j),VV0(i));

end

end

y=round(10000*y)/10000;

functiony=Y(u,V0)%

(1)

y=S(u,V0)/W(u,V0);

functiony=W(u,V0)%

(2)编写该程序

T=400/u;

rr=0;

fort=1:

T

rr=rr+r(t,u);

end

y=3.4*pi/3*(((3*V0)/(4*pi))^(1/3)-rr)^3;

functiony=r(t,u)%(3)

ift>=0&&t<=1000/6/u

y=1.56*10^(-3)*u*(1+0.4*u)*t;

elseift>1000/6/u

y=0.2*(1+0.4*u);

else

error('k不能小于0!

')

end

functiony=S(u,V0)%(4)

T=400/u;

y=0;

fort=1:

T

rr=(3*V0/4/pi)^(1/3);

fork=1:

t

rr=rr-r(k,u);

end

y=y+log10(rr);

end

y=400*f(V0)/u+7.2*u*(u+6)*(3*y-151/u);

functiony=f(V0)%(5)编写该程序

ifV0<=5*10^5

y=4.0;

elseifV0>5*10^5&&V0<=10^6

y=6.2;

elseifV0>10^6&&V0<=10^7

y=8.0;

else

error('k超出取值范围!

');

end

★程序运行结果:

附1:

实验提示

第1.1题

MATLAB函数:

@,fplot,syms,sym,diff,solve,eval

创建函数句柄符号@

绘制函数图函数fplot

定义多个符号对象命令syms

生成符号对象函数sym

微分函数diff

代数方程的符号求解函数solve

符号表达式赋值函数eval

把表达式或语句表示成一个字符串s,eval(s)先把s转换回表达式或语句,再执行。

 

附2:

第3章简单的优化模型

3.2生猪的出售时机

3.7冰山运输

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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