高等数学问题的数值解(1)--求函数极值点

一元函数的极值点

例:求函数 $ f(x) = e_{x}cos(2x) $ 在区间[0,3]上的极小点。

1
2
3
4
5
6
7
8
from numpy import exp,cos 
from scipy.optimize import fminbound

f = lambda x:exp(x)*cos(2*x)

x0 = fminbound(f,0,3)

print('极小点为:{}, 极小值为:{}'.format(x0,f(x0)))

例:求函数 $ f(x) = e_{x}cos(2x) $ 在0附近的一个极小点。

1
2
3
4
5
6
7
8
from numpy import exp,cos 
from scipy.optimize import fmin

f = lambda x:exp(x)*cos(2*x)

x0 = fmin(f,0)

print('极小点为:{}, 极小值为:{}'.format(x0,f(x0)))

多元函数的极值点

例:求函数 $ f(x) = 100(x_{2}-x_{1}^{2})^{2}+(1-x_{1})^{2} $ 的极小点。

1
2
3
4
5
6
7
from scipy.optimize import minimize

f = lambda x:100*(x[1]-x[0]**2)**2+(1-x[0])**2

x0 = minimize(f,[2,2])

print('极小点为:{}, 极小值为:{}'.format(x0.x,x0.fun))
0%