ใใฎ่จไบใงใฏใPython่จ่ชใจNumPyใ็จใใฆใ้
ๅใฎๅพ้
ใๆฑใใๆนๆณใใฝใผในใณใผใไปใใง่งฃ่ชฌใใพใใ
ๆฐๅคๅพ้ (ๅพใ)
NumPyใฎgradientใๅฉ็จใใใจใ็ฐกๅใซ้ขๆฐใฎๆฐๅคๅพ้
(ๅพใ)ใ่จ็ฎใใใใจใๅบๆฅใพใใ
ไปๅใฏ1ๅคๆฐใจ2ๅคๆฐใฎ้ขๆฐใซๅฏพใใฆๆฐๅคๅพ้
(ๅพใ)ใ่จ็ฎใใฐใฉใๅใใฆใฟใพใใใ
1ๅคๆฐใฎๆธๅผ
np.gradient(y)
2ๅคๆฐใฎๆธๅผ
Ey,Ex = numpy.gradient(E ,.2, .2)
็ฌฌ1ๅผๆฐ(E)๏ผๅพ้
ใๆฑใใใ้ขๆฐ
ๆปใๅค(Ey,Ex)๏ผE(x, y)ใฎyๆนๅใฎๅพ้
ใจxๆนๅใฎๅพ้
(้ ็ชใซๆณจๆ)
ใฝใผในใณใผใ
ใตใณใใซใใญใฐใฉใ ใฎใฝใผในใณใผใใงใใ
1ๅคๆฐใฎๅ ดๅ
# -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt def main(): x = [1., 2., 3., 4., 5.,6. ,7. ,8.] y = [1., 2., 3., 4., 5.,5.5,7., 9.] dy = np.gradient(y) # yใฎๅพ้ ใ่จ็ฎ # ็ตๆใ่กจ็คบ plt.plot(x, y, "r-o", label="y") plt.plot(x, dy, "g-o", label="dy") plt.xlim([0, 10]) plt.ylim([0, 10]) plt.grid() plt.legend() plt.show() if __name__ == '__main__': main()
2ๅคๆฐใฎๅ ดๅ
# -*- coding: utf-8 -*- import numpy as np import matplotlib.pyplot as plt from matplotlib import cm from mpl_toolkits.mplot3d import Axes3D def main(): x = np.arange(0, 10.1, 0.5) y = np.arange(0, 10.1, 0.5) (xm, ym) = np.meshgrid(x, y) # ใฐใชใใใฎไฝๆ (xq,yq) = (5, 5) # ้ป่ทใฎๅบงๆจ r = np.sqrt((xq-xm)**2+(yq-ym)**2) # ้ป่ทใจใฎ่ท้ข k = 9.0*10**9 # ๆฏไพๅฎๆฐk q = 1 # ้ป่ท E = (k*q)/r**2 # 2ๅคๆฐใฎ้ขๆฐ(้ปๅ ดE(x,y) (Ey,Ex) = np.gradient(E ,.2, .2) # Eใฎๅพ้ ใ่จ็ฎ Ex[Ex>0.5],Ey[Ey>0.5] = 0.5, 0.5 # ๅพ้ ใฎไธ้ไธ้ Ex[Ex<-0.5],Ey[Ey<-0.5] = -0.5, -0.5 # ็ตๆใ่กจ็คบ plt.quiver(xm,ym,-Ex,-Ey,angles="xy",headwidth=3,scale=20,color="#444444") plt.xlim([0, 10]) plt.ylim([0, 10]) plt.grid() plt.legend() plt.show() if __name__ == '__main__': main()
ๅฎ่ก็ตๆ
ใตใณใใซใใญใฐใฉใ ใฎๅฎ่ก็ตๆใงใใ
ใณใกใณใ