第七章 求极值及解线性规划问题命令与例题
7.1求函数的局部极值 Mathematica求函数局部极小值的一般形式为: FindMinimum [目标函数, {自变量名1,初始值1}, {自变量名2,初始值2},…] 具体的拟合命令有: 命令形式1:FindMinimum [f[x], {x, x0}] 功能:以 x0为初值, 求一元函数f(x)在x0附近的局部极小值。 命令形式2:FindMinimum [f[x], {x, { x0 , x1}}] 功能:以 x0和x1为初值,求一元函数f(x)在它们附近的局部极小值。 命令形式3:FindMinimum [f[x], {x, x0 , xmin,xmax }] 功能:以 x0为初值, 求一元函数f(x)在x0附近的局部极小值, 如果中途计算超出自变量范围[xmin,xmax], 则终止计算。 命令形式4:FindMinimum [f[x,y,...], {x, x0},{y, y0},…] 功能:以点(x0, y0,…)为初值, 求多元函数f(x,y,…)在(x0, y0,…)附近的局部极小值
例1: 求函数y=3x4-5x2+x-1, 在[-2,2]的极大值、极小值和最大值、最小值。 解: 先画出函数图形,再确定求极值的初值和命令。Mathematica 命令为: In[1]:= Plot[3x^4-5x^2+x-1,{x,-2,2} 从图中看到函数在-1和1附近有两个极小值点,在0附近有一个极大值点,用Mathematica 命令求之: In[2]:=FindMinimum[3x^4-5x^2+x-1,{x,1}] Out[2]= {-2.19701, {x -> 0.858028}} In[3]:=FindMinimum[3x^4-5x^2+x-1,{x,-1}] Out[3]= {-4.01997, {x -> -0.959273}} In[4]:=FindMinimum[- (3x^4-5x^2+x-1), {x,0}] Out[4]= {0.949693, {x -> 0.101245}} In[5]:= 3x^4-5x^2+x-1/.x->-2 In[6]:= 3x^4-5x^2+x-1/.x->2 故所求函数在[-2,2]的x=2处取得最大值29, 在x=-0.959273处取得最小值为-4.01997
例2: 求函数z= e2x(x+y^2+2y),在区间[-1,1][-2,1]内的极值。 解: 本题限制了求极值的范围,为确定初值,借助等高线图Mathematica命令为 In[7]:= ContourPlot[Exp[2x]*(x+y^2+2y),{x,-1,1},{y,-2,1}, Contours->20, ContourShading->False, PlotPoints->30] 从图中可知函数在(0.45,-1.2)可能有极值,取x0=0.45,y0= -1.1, 再用求极值命令 In[8]:= FindMinimum[Exp[2x]*(x+y^2+2y), {x, 0.45}, {y, -1.1}] Out[8]= {-1.35914, {x -> 0.5, y -> -1.}} 求得函数在 x= 0.5, ,y= -1取得极小值-1.35914。
例3: 求函数f(x,y,z)=x 4+siny-cosz,在点(0,5,4)附近的极小值 。 解:In[9]:= FindMinimum[x^4+Sin[y]Cos[z],{x,0},{y,5},{z,4}] Out[9]= {-2., {x -> 0., y -> 4.71239, z -> 6.28319}} 故函数在 (0, 4.71239, 6.28319)取得极小值-2。
7.2 解线性规划问题 线性规划是运筹学的一个重要分支,应用很广。线性规划问题可以描述为求一组非负变量,这些非负变量在满足一定线性约束的条件下,使一个线性目标函数取得极小(大)值的问题,线性规划的标准形式为: 目标函数 : min S= c 1x 1 + c 2x 2 + …+ c n x n a11 x 1 + a12 x 2 +….+ a1n x n = b 1 a21 x 1 + a22 x 2 +…. + a2n x n = b2 约束条件: … ……. a m1x 1 + a m2x 2 +….+ a mn x n = b m x 1 ,x 2 ,…, x n 0 这里x 1 ,x 2 ,…, x n 是变量, c i, aij ,bi都是已知常数,且bi 0,约束条件常用符号:s.t.表示。
线性规划的一般形式为: 目标函数 : min S= c 1x 1 + c 2x 2 + …+ c n x n a11 x 1 + a12 x 2 +….+ a1n x n b 1 a21 x 1 + a22 x 2 +…. + a2n x n b2 约束条件: … ……. a m1x 1 + a m2x 2 +….+ a mn x n b m 式中符号“”可以是关系符号:>, <, =, , 中的任意一个。 Mathematica解一般线性规划问题的命令形式有: 具体的拟合命令有: 命令形式1:ConstrainedMin [f, {inequalities}, {x1,x2,…}] 功能:求在给定约束条件inequalities下,线性目标函数f极小值和对应的极小点。 命令形式2:ConstrainedMax [f, {inequalities}, {x1,x2,…}] 功能:求在给定约束条件inequalities下,线性目标函数f极大值和对应的极大点。
注意: 命令1结果形式为:{极小值, {自变量1 -> 极小值点1,自变量2 -> 极小值点2,…}}。 命令2结果形式为:{极大值, {自变量1 -> 极大值点1,自变量2 -> 极大值点2,…}}。 上面命令中的f为线性规划中的目标函数,它必须是变量x1,x2,…的线性函数。 上面命令中的inequalities为线性规划中的约束不等式组,每个关系式必须用逗号分隔。 上面命令中的x1,x2,…线性规划中的自变量名称,它们必须取非负值且可以用其它符号名。
例4: 求线性规划问题 MaxS= 17x 1 -20 x 2 +18 x 3 x 1 - x 2 +x 3 <10 s.t. x 1 + x 3 <5 x 1 <5 解: Mathematica 命令为: In[10]:= ConstrainedMax[17x1-20x2+18x3, {x1-x2+x3<10,x1<5,x1+x3>20}, {x1, x2, x3}] Out[10]= {160, {x1 -> 0, x2 -> 10, x3 -> 20}} 计算结果可得所求目标函数极大值为160,对应的极大值点为(0,10,20)。
例5: 求线性规划问题 Min m= 13x -y +5z x +y >=7, s.t. y + z < 10, x>2, y>0,z>0 解: Mathematica 命令为: In[11]:= ConstrainedMin[13x-y+5z, {x+y>=7, y+z<10, x>2, y>0, z>0}, {x,y,z}] Out[11]= {16, {x -> 2, y -> 10, z -> 0}} 计算结果可得所求目标函数极小值为16,对应的极小值点为(0,10,0)。
例6: 现有三种食品A1,A2,A3,各含有两种营养成分B1,B2, 每单位食物Ai含有Bj成分的数量及每种食物的单价如下表所示: 解: 设购买食品A1,A2,A3的数量分别为 x 1, x 2,x 3,花费的费用为S,则本问题可以用以下的数学模型来描述: Min S= 4x1 +2x2 +3x3 2x 1 + 4x 3 5 s.t. 2x 1 + 3x 2 +x 3 4 x 1 , x 2 , x 3 0 种类 成分 A1 A2 A3 营养成分需要量 B1 2 4 5 3 1 单价
用Mathematica 命令为: In[12]:= ConstrainedMax[4x1+2x2+3x3, {2x1+4x3>=5, 2x1+3x2+x3>=4,x1>=0,x2>=0,x3>=0 }, {x1, x2, x3}] Out[12]={67/12, {x1 -> 0, x2 -> 11/12, x3 -> 5/4}} 计算结果显示购买11/12数量的食品A2, 5/4数量的食品A3可以满足本问题的要求,此时的花费的费用为67/12。 -------------------------------------------------------------------------------------------------------- 例7: 求线性规划问题 Min f = -x-3y-3z, 3x+y+2z+ v =5 s.t. x+ z+ 2v+w =2 x+ 2z+u+2v =6 x, y, z, u, v, w>0 解: Mathematica 命令为: In[13]:= ConstrainedMin[-x-3y-3z, {3x+y+2z+v==5, x+z+2v+w==2, x+2z+u+2v==6}, {x, y, z, u, v, w}] Out[13]= {-15, {x -> 0, y -> 5, z -> 0, u -> 6, v -> 0, w -> 2}} 计算结果可得所求目标函数极小值为-15,对应的极小值点为(x, y, z, u, v, w)=(0,5,0,6,0,2)。
练习 我国古代有“齐王赛马”的典故,说的是战国时代的齐王与其大将田忌赛马,双方约定各出上、中、下3个等级的马匹进行比赛,这样共赛马3次,每次比赛的败者付给胜者一百金。已知在同一等级马的比赛中,齐王之马稳操胜券,但田忌的上、中等级的马可以分别胜齐王的中、下等级的马,试问: (1)田忌是否一定会败给齐王? (2)在所有可能的比赛中,齐王取胜的比赛共有?次
第7章结束 谢谢!