没有合适的资源?快使用搜索试试~ 我知道了~
首页【机器学习6】python实现拉格朗日乘子法
目录1.拉格朗日乘子法2.python –拉格朗日乘子法3.python sympy包 –拉格朗日乘子法 1.拉格朗日乘子法 题目如下:等式约束下的拉格朗日乘子法求解过程 2.python –拉格朗日乘子法 题目如上: from scipy.optimize import minimize import numpy as np #目标函数: def func(args): fun = lambda x: 60 - 10*x[0] - 4*x[1] + x[0]**2 + x[1]**2 - x[0]*x[1] #fun = lambda x: 10 - x[0]**2 -
资源详情
资源评论
资源推荐

【机器学习【机器学习6】】python实现拉格朗日乘子法实现拉格朗日乘子法
目录目录1.拉格朗日乘子法2.python –拉格朗日乘子法3.python sympy包 –拉格朗日乘子法
1.拉格朗日乘子法拉格朗日乘子法
题目如下:等式约束下的拉格朗日乘子法求解过程
2.python –拉格朗日乘子法拉格朗日乘子法
题目如上:
from scipy.optimize import minimize
import numpy as np
#目标函数:
def func(args):
fun = lambda x: 60 - 10*x[0] - 4*x[1] + x[0]**2 + x[1]**2 - x[0]*x[1] #fun = lambda x: 10 - x[0]**2 - x[1]**2
return fun
#约束条件,包括等式约束和不等式约束
def con(args):
cons = ({'type': 'eq', 'fun': lambda x: x[0]+x[1]-8})
#cons = ({'type': 'ineq', 'fun': lambda x: x[1]-x[0]**2},
# {'type': 'eq', 'fun': lambda x: x[0]+x[1]})
return cons
if __name__ == "__main__":
args = ()
args1 = ()
cons = con(args1)
x0 = np.array((2.0, 1.0)) #设置初始值,初始值的设置很重要,很容易收敛到另外的极值点中,建议多试几个值
#求解#
res = minimize(func(args), x0, method='SLSQP', constraints=cons)
print(res.success)
print("x1=",res.x[0],"; x2=",res.x[1])
print("最优解为:",res.fun)
结果如下:




















weixin_38655810
- 粉丝: 6
- 资源: 908
上传资源 快速赚钱
我的内容管理 收起
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助

会员权益专享
安全验证
文档复制为VIP权益,开通VIP直接复制

评论0