ใ€NumPyใ€‘้…ๅˆ—ใฎๅ‹พ้… numpy.gradient

ใ“ใฎ่จ˜ไบ‹ใงใฏใ€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()

ๅฎŸ่กŒ็ตๆžœ

ใ‚ตใƒณใƒ—ใƒซใƒ—ใƒญใ‚ฐใƒฉใƒ ใฎๅฎŸ่กŒ็ตๆžœใงใ™ใ€‚

1ๅค‰ๆ•ฐใฎๅ ดๅˆ

2ๅค‰ๆ•ฐใฎๅ ดๅˆ

ใŠใ™ใ™ใ‚่จ˜ไบ‹

Pythonๅ…ฅ้–€ ใ‚ตใƒณใƒ—ใƒซ้›†
NumPyๅ…ฅ้–€ ใ‚ตใƒณใƒ—ใƒซ้›†

ใ“ใฎ่จ˜ไบ‹ใ‚’ๆ›ธใ„ใŸไบบ
่ฅฟไฝๆŠ€็ ”

Pythonไฝฟ็”จๆญด10ๅนดไปฅไธŠใ€‚็ ”็ฉถใ€ไป•ไบ‹ใ€่ถฃๅ‘ณใงใƒ‡ใƒผใ‚ฟๅˆ†ๆžใ‚„ไฝœๆฅญ่‡ชๅ‹•ๅŒ–ใชใฉใซๆดป็”จใ—ใฆใใŸใƒŽใ‚ฆใƒใ‚ฆใ‚’ๆƒ…ๅ ฑ็™บไฟกใ—ใฆใ„ใพใ™ใ€‚
่ฉณใ—ใ„ใƒ—ใƒญใƒ•ใ‚ฃใƒผใƒซใ‚„ใŠๅ•ๅˆใ›ใฏใ“ใกใ‚‰ใฎใƒšใƒผใ‚ธใพใงใ€‚
โ‡“Youtubeใ‚„X๏ผˆๆ—งTwitter๏ผ‰ใงใ‚‚ๆƒ…ๅ ฑ็™บไฟกไธญใงใ™๏ผ

่ฅฟไฝๆŠ€็ ”ใ‚’ใƒ•ใ‚ฉใƒญใƒผใ™ใ‚‹
NumPy

ใ‚ณใƒกใƒณใƒˆ