Uas Fisika Komputasi

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

UAS FISIKA KOMPUTASI - Jupyter Notebook http://localhost:8891/notebooks/Downloads/UAS%20FISIKA%20K...

Nama : Husnul Almubarok

NIM : G1B020013

MK : FISIKA KOMPUTASI

Jawaban soal nomor 2

In [53]: %matplotlib inline

In [54]: import numpy as np


import matplotlib.pyplot as plt
from matplotlib import cm
import math

In [55]: NX = 400
i = 0
n = 1.50
ic = NX//2
ip = 100 # posisi gel. pulsa
dx = 0.02
# Syarat stabilitas dt < dx
dt = dx/2.0;
dtdivdx = dt/dx
freq = 1.0
omega = 2.0*math.pi*freq

In [56]: # Posisi Tengah


x0 = ic*dx
# Array nilai x
x = np.arange(NX+1)*dx -x0

1 dari 3 05/12/2022 12.29


UAS FISIKA KOMPUTASI - Jupyter Notebook http://localhost:8891/notebooks/Downloads/UAS%20FISIKA%20K...

In [57]: # Hitung lagi dan menyimpan hasil


eyt = []
s = []
# Membuat array zeros sebanyak (N+1) untuk grid
ey = np.zeros([NX+1])
bz = np.zeros([NX+1])
n=1.50
NT = 1000
for n in range(NT):
n = n + 1
t = n*dt
# Hitung Bz
for i in range(0,NX):
bz[i] = bz[i] - dtdivdx*(ey[i+1] -ey[i])
# Sumber Gel EM # (a) Gel Sinus # bz[ip] = bz[ip] + math.sin(omega*n*dt) # (b) Gel
if n<60:
bz[ip] = bz[ip] + 2.0*math.exp(-0.005*(n-30.0)*(n-30.0))
# Simpan setiap 10 iterasi untuk visualisasi
# Hitung Ey
for i in range(1,NX):
ey[i] = ey[i] - dtdivdx*(bz[i] -bz[i-1])
# syarat batas
ey[0] = 0.0
ey[NX] = 0.0

if n%10 == 0:
eyt.append(list(ey))
s.append('t = ' + str(t)[0:3])

2 dari 3 05/12/2022 12.29


UAS FISIKA KOMPUTASI - Jupyter Notebook http://localhost:8891/notebooks/Downloads/UAS%20FISIKA%20K...

In [58]: # Hasil setelah NT iterasi


t = NT*dt
plt.plot(x,ey, label="Ey")
plt.title('Medan pada waktu t = '+ str(t))
plt.xlabel('$x$')
plt.ylabel('Medan Listrik')
plt.legend()

Out[58]: <matplotlib.legend.Legend at 0xc93015ad70>

In [ ]:

In [ ]:

3 dari 3 05/12/2022 12.29

You might also like