这里用到的是scipy.optimize的fmin和fminbound
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
import numpy as np from matplotlib import pyplot as plt from scipy.optimize import fmin,fminbound def f(x): return x * * 2 + 10 * np.sin(x) + 1 x = np.linspace( - 10 , 10 ,num = 500 ) min1 = fmin(f, 3 ) #求3附近的极小值 min2 = fmin(f, 0 ) #求0附近的极小值 min_global = fminbound(f, - 10 , 10 ) #这个区域的最小值 print (min1) print (min2) print (min_global) plt.plot(x,f(x)) plt.show() |
输出:
1
2
3
4
5
6
7
8
9
10
11
|
Optimization terminated successfully. Current function value: 9.315586 Iterations: 15 Function evaluations: 30 Optimization terminated successfully. Current function value: - 6.945823 Iterations: 26 Function evaluations: 52 [ 3.83745117 ] [ - 1.3064375 ] - 1.306440096615395 |
以上这篇python实现函数极小值就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/your_answer/article/details/79170869