티스토리 뷰

함수의 표면 표시: surface 함수 

 

원래 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D 
 
xn = 9
x0 = np.linspace(-22, xn)
x1 = np.linspace(-22, xn)
 
xx0, xx1 = np.meshgrid(x0, x1)
 
plt.figure(figsize=(53.5))
 
ax = plt.subplot(111, projection='3d')
ax.plot_surface(xx0, xx1, y, rstride=1, cstride=1, alpha=0.5, color='cornflowerblue', edgecolor='black')
ax.set_zticks((00.2))
ax.view_init(75-95)
plt.show()
cs

 

일단 무작정 따라 쳐 봤다. 그런데... 뭔가 이상하다. y가 정의되지 않았다고 나오고, 그래프도 안 뜸.

또 열심히 구 박사한테 물어봐서, 함수를 찾아냄. 

 

def f(x0, x1):
    r = 2 * x0**2 + x1**2
    ans = r * np.exp(-r)
    return ans
y = np.zeros((xn, xn))

for i0 in range(xn):
    for i1 in range(xn):
        y[i1, i0]=f(x0[i0], x1[i1])

이 두 코드를 추가하였다. 

 

제대로 나옴.

wikidocs.net/14645 이 링크도 참고하였음.