学生一个生活费是478.8,早餐是27餐,中餐27餐,晚餐是22餐,求早餐,中餐和晚餐各多少钱一餐?

如题所述

【求解答案】早餐餐费为2.74元,中餐餐费为9.86元,晚餐餐费为6.30元。

【求解方法】如我们把早餐,中餐和晚餐餐费视为一样,则每餐餐费为478.8÷(27+27+22)=6.3元。这显然不符学生一日三餐费用的消费结构,不是本问题的解。实际上该问题属于运筹学中的一个线性规划问题。

根据题意,创建该问题的线性规划方程,即

这里,x1+x2+x3=6.3×3=18.9

该线性规划问题,可采用运筹学的混合惩罚函数法来解决。

第一步,设早餐餐费为x1元,中餐餐费为x2元,晚餐餐费为x3元。

第二步,根据下列关系,

构造罚函数

第三步,分别求P对x1、x2、x3的偏导数,即

第三步,取惩罚因子r=2e-10,求解由∂P/∂x1=0,∂P/∂x2=0,∂P/∂x3=0,组成一元三次方程组。

第四步,用牛顿迭代法最后得到x1、x2、x3的解。

【求解过程】

【本题知识点】

1、制约函数法又称为罚函数。罚函数的基本思想是, 通过一系列罚因子构造罚函数,将问题转化为序列无约束极值问题,求罚函数的极小点来逼近原约束极值问题的最优解。

2、混合罚函数法原理(简称混合法):是将内点法与外点法结合起来,求解同时具有等式约束和不等式约束优化问题。

3、混合法的惩罚函数

4、混合法罚函数法的基本思想:当初始点X(0)给出后,对等式约束和X(0)不能满足的那些不等式约束,用外点法,而对X(0)所满足的那些不等式约束,则用内罚函数。

【说明】本题给出的求解并不是一次完成的,需要预设障碍因子r=1开始计算,并比较结果,如不满足,则进一步减小r值,如 r=0.1,r=0.01,r=0.001,…,r=2e-10,…,直到结果满足给出的约束条件。所以说,求解线性规划问题是一个与时共进的过程。

5、【matlab解】



温馨提示:答案为网友推荐,仅供参考