0

現在、最適化問題を解決していて、見つけた解決策を plot3d ツールキットでプロットしたいと考えています。関数 の最小値を見つけようとしているとしましょうF。を最小化する x の値を呼び出しますF x*Fによって生成されたサーフェスをグリッドとしてプロットし、同じプロットに の最小値も印刷したいと考えていますF : F(x*)

私はこの目的のためにこのコードを使用します:

x = [a / 10 - 5 for a in range(100)]
y = [a / 10 - 5 for a in range(100)]

Z = [] 
for i in range(len(x)):
    Z.append([0] * len(x)) 
Z = array(Z)    
for i in range(len(x)):
    for j in range(len(x)):
        Z[i, j] = F([x[i], y[j]])
X = identity(len(x))
for i in range(len(x)):
     X[:, i] = x
Y = X.T

fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.plot_wireframe(X, Y, Z, rstride=2, cstride=2, color='blue')
ax = fig.gca(projection = '3d')
ax.plot(sol.x[0], sol.x[1], [F(sol.x)], color='green')

plt.show()  

sol.x最小化する値はどこにありますかF(簡単にするためsol.x=x*)。このコードは次のエラーを返します。

Traceback (most recent call last):
File "projet2.py", line 103, in <module>
ax.plot(sol.x[0],sol.x[1],[f1(sol.x)],color='green')
File "/usr/lib/pymodules/python2.7/mpl_toolkits/mplot3d/axes3d.py", line 1296, in plot
len(xs) == len(args[0]) :
TypeError: object of type 'numpy.float64' has no len()

この問題を解決する方法を知っている人はいますか?

ありがとう

クエンティン

4

0 に答える 0