(x =整数+0.25、y =整数+0.75)で、またはあなたのパラメタリゼーションで最小の関数を決定する必要があります。次に、球座標を使用して球をパラメータ化することができます(ここで行われているように:python matplotlib: drawing 3D sphere with circumferences)、球をプロットします。良いニュースは、最小値が正しく判定されていることであると球が作成されることを
1):
は現在、いくつかの良いニュースといくつかの悪いニュースが来ます。下のプロットでは、それらがサーフェスプロットの青い部分の上にあることがわかります(青の部分が実際に最小を示しています)。
2.)悪いニュースは、球が実際に正しくレンダリングされる別の角度を探すのが難しいことです。私はこのむしろ迷惑な行動の解決策を知らないので、あなたが正しい角度を見つけるまで、おそらく周りを遊ばなければならないでしょう。楽しむ! 1は、必然的に他の人の後ろに隠されたオブジェクトの問題に実行されますmatplotlibのを使用して
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
def func(x, y):
return np.sin(2*np.pi*x)*np.sin(2*np.pi*y)/3
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
x = y = np.arange(-2.0, 2.0, 0.05)
# Get the minima of the function.
minsx1 = np.arange(int(np.amin(x)) + 0.25, int(np.amax(x)) + 0.25 + 1, 1)
minsy1 = np.arange(int(np.amin(y)) + 0.75, int(np.amax(y)) + 0.75 + 1, 1)
minsx2 = np.arange(int(np.amin(x)) + 0.75, int(np.amax(x)) + 0.75 + 1, 1)
minsy2 = np.arange(int(np.amin(y)) + 0.25, int(np.amax(y)) + 0.25 + 1, 1)
X, Y = np.meshgrid(x, y)
zs = np.array([func(x,y) for x,y in zip(np.ravel(X), np.ravel(Y))])
Z = zs.reshape(X.shape)
# Color map for better detection of minima (blue)
ax.plot_surface(X, Y, Z, cmap="viridis")
ax.set_zlim3d(-1,1)
# Spherical coordinates
r = 0.15
phi = np.linspace(0, 2 * np.pi, 30)
theta = np.linspace(0, np.pi, 30)
# Write spherical coordinates in cartesian coordinates.
x = r * np.outer(np.cos(phi), np.sin(theta))
y = r * np.outer(np.sin(phi), np.sin(theta))
z = r * np.outer(np.ones(np.size(phi)), np.cos(theta))
# Plot the spheres.
for xp in minsx1:
for yp in minsy1:
sphere = ax.plot_surface(x+xp, y+yp, z+0.35, color='r')
for xp in minsx2:
for yp in minsy2:
sphere = ax.plot_surface(x+xp, y+yp, z+0.35, color='r')
ax.view_init(elev=90, azim=0)
plt.savefig('test.png')
plt.show()
![enter image description here](https://i.stack.imgur.com/gtui3.png)
:
mayaviでは、溶液は次のようになります。私は、あなたが球をプロットする方法を見つけるあなたの検索の少しと思う。次に、より多くの球をプロットすることも問題ではなく、特定の位置に配置することも問題ではありません。実際の問題について詳しく説明するほど、助けを受ける可能性は高くなります。それ以外の人は、この質問を「私のために仕事をしてください」と理解しているかもしれません。多くの人がアレルギーを起こしています。 – ImportanceOfBeingErnest
それは私の意図ではありませんでした。私は失敗した投稿を掲示することは、彼らが何をしているのかを知っていた人にとってはまったく時間がかからないような、「見えた」という問題に役立つだろうと思っていませんでした。残念なことに、ml4294の答えがハイライトになるので、この問題はmatplotlibでは解決できません。 –