python求解非线性方程,python解非线性方程组的几种方法

  python求解非线性方程,python解非线性方程组的几种方法

  本文中,我用Excel解决线性规划问题,我用python解决线性规划问题,我用拉格朗日法解决。

  首先,用Excel解决线性规划问题

  建立数据源

  写出资源分配的三个要素。

  在excel中设置目标函数

  根据前面的分析,目标函数是F6区域E2、E6和F2两列数组中对应元素的乘积之和,单元格C10中的input=SUMPRODUCT (E2:E6,F2:F6)。

  在excel中设置约束

  加载excel编程解决方案模块

  选择文件选项加载项开始,然后选中规划求解加载项。点击“确定”按钮。在“数据”菜单下,出现“规划求解”模块(操作过程与加载“数据分析”模块相同)。

  设置决策变量和目标函数

  设置约束

  添加约束1

  添加约束2

  添加约束3

  添加约束4

  添加约束5

  添加约束6

  添加最终结果

  单击求解获得最终结果。

  第二,用python解决线性规划问题,设置约束。

  Scipy库用于求解线性规划的最优解和最大值。

  #从scipy导入包优化导入numpy为NP #创建矩阵,C为目标函数的矩阵,A_ub为约束左侧形成的矩阵,B_ub为约束右侧,C=NP。Array ([600,800,500,400,300]) A _ UB=NP。数组([100 2000,0,0,0],[-1,-1,0,0,0],[1000,2000,400,1000,100],[-2000,-4000,-3000,-5000,-600],[1,0,0,0,0,0],[0,0,0,0,0,0]

  第三,用拉格朗日法解题。

  手动解决方案

  参考拉格朗日乘数法求函数f(x,y,z)在(x,y,z)=0的条件下的极值。该方法(步骤)是:

  1.Do拉格朗日函数L=f(x,y,z) (x,y,z),称为拉格朗日乘子;

  2.求L对x,y,z,的偏导数,得到方程组,求驻点P (x,y,z);如果这个实际问题的最大值或最小值存在,一般来说只有一个驻点,所以可以求出最大值。

  用python编程求解# import package from symphony import * #设置变量x,y,z,k=symbols (x,y,z,k) a,b,c=symbols (a,b,C )f=8 * x * y * ZG=x * * 2/a * * 2y * * 2/b * * 2z * * 2/C * * 2-1 #构造拉格朗日函数L=f k*g# Derive dx=diff(L, x) #对x求导. Dy)dz=diff(L,z) #对z print求导( dz=,dz)dk=diff(L,k) #对k print求导( dk=, DK)DX=8 * y * z2 * K * x/a * * 2dy=8 * x * z2 * K * y/b * * 2dz=8 * x * y2 * K * z/c * * 2dk=-1z * * 2/c * * 2Y K])print(m)#变量赋值x=sqrt(3)* a/3y=sqrt(3)* b/3z=sqrt(3)* c/3k=-4 * sqrt(3)* a * b * c/3 #计算值

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: