文章目录
- Python代码
- 当前参数下求解结果
- 参数设置
Python代码
import scipy
import numpy as np
import matplotlib.pyplot as plt
from scipy.optimize import minimize
def func(x):
return 7*np.sin(x) + 11*np.cos(5*x)
def cal_func():
x = np.linspace(-5,5,1000)
y = func(x)
return x,y
def plot_func(x,y):
plt.plot(x,y)
plt.xlabel = 'x'
plt.ylabel = 'f(x)'
if __name__ == '__main__':
x,y = cal_func()
plot_func(x,y)
init_point = np.array(0)
re = minimize(func,init_point,method='BFGS')
print('result_x:',re.x)
print('result.func:',re.fun)
plt.scatter(re.x,re.fun,color='red', marker='o', s=100)
plt.show()
当前参数下求解结果
result_x: [-0.64863839]
result.func: -15.171988751851286
图像:
参数设置
def func(x):
需要待优化求解的函数。这里为7*np.sin(x) + 11*np.cos(5*x)
minimize:
默认是最小值,如果要求最大值就取个负号。