Numpy iPython中指定域上函数的最大值

Numpy iPython中指定域上函数的最大值,numpy,scipy,ipython,max,Numpy,Scipy,Ipython,Max,我试图找到以下函数在1>>平面图(x,f(x)) [] >>>plt.show() 我看到了这个图,并对15岁时的最大值保持警惕,但这就是教授所写的。@Jamie我收到了以下错误:回溯(最近一次调用):5文件“/hw7problem5.py”,第14行,在6 scipy.optimize.fmin(lambda r:1/f(r),10)7 AttributeError:'module'对象没有属性'optimize'@dustin您需要导入优化模块:导入scipy.optimize@Jaime

我试图找到以下函数在1 溶液应为R约为15.5左右

#!/usr/bin/env python
#  Plotting the energy for circular Hohmann transfer

import scipy
import matplotlib
import numpy as np
import pylab


def f(R):
    return 1 / np.sqrt(R) - (np.sqrt(2) * (1 - R)) / (np.sqrt(2) * (1 + R)) - 1

x = np.arange(1, 20)
pylab.plot(x, f(x), 'r')
pylab.show()

您可以使用
scipy.optimizie.fmin

>>> scipy.optimize.fmin(lambda r: -f(r), 10)
Optimization terminated successfully.
         Current function value: -0.134884
         Iterations: 16
         Function evaluations: 32
array([ 11.44451904])
最大值实际上是:

>>> x = np.linspace(1, 20, 1000)
>>> plt.plot(x, f(x))
[<matplotlib.lines.Line2D object at 0x0000000007BAEF98>]
>>> plt.show()
>x=np.linspace(1,20,1000)
>>>平面图(x,f(x))
[]
>>>plt.show()

我看到了这个图,并对15岁时的最大值保持警惕,但这就是教授所写的。@Jamie我收到了以下错误:回溯(最近一次调用):5文件“/hw7problem5.py”,第14行,在6 scipy.optimize.fmin(lambda r:1/f(r),10)7 AttributeError:'module'对象没有属性'optimize'@dustin您需要导入
优化
模块:
导入scipy.optimize
@Jaime,最好取f的反方向,而不是倒数方向。在这个例子中这并不重要,但是最大化
f
与最小化
-f
是一样的,而不是一般的
1/f
。@jorgeca我写这篇文章时有一种很有趣的感觉,你说得很对,会编辑的。