scipy求解无约束非线性规划例子

2021-06-01  本文已影响0人  一路向后

1.求解目标

\quad min\quad f(x)\ =\ e^{-x^2} \times\ sin(6x)

2.源码实现

import math
from scipy.optimize import minimize
import numpy as np

# 定义优化函数
def func(args):
        a = args
        v = lambda x : math.exp(-x[0]**2) * math.sin(a*x[0])
        return v

# 定义变量取值范围: ineq为大于等于0
def con(args):
        min = args
        cons = ({'type': 'ineq', 'fun': lambda x: x[0] - min})
        return cons


args = 6

x = np.array(1);
cons = con(0)

res = minimize(func(args), x, method='SLSQP', constraints=cons)

if res.success == True:
        print(res.x)
        print(res.fun)

3.运行及其结果

$ python3 example.py
[ 0.74471414]
-0.5572767876175884
上一篇 下一篇

猜你喜欢

热点阅读