Algoritma python untuk kuis
Problem set 2.1 no 6 hal 55 (buku "Numerical Methods in Engineering with Python 3")
Berikut ini adalah algoritmanya :
from numpy import array, zeros a = array([[0,0,2,1,2],\ [0,1,0,2,-1],\ [1,2,0,-2,0],\ [0,0,0,-1,1],\ [0,1,-1,1,1]]) b = array([[1],\ [1],\ [-4],\ [-2],\ [-1]]) c = zeros((5,6)) # ini dilakukan untuk menyusun matrik a dan matrik b menjadi satu matrik 5 x 6 for j in range(0,5) : for i in range (0,5): c[j][i]=a[j][i] for j in range (0,5): c[j][5]=b[j][0] d = zeros((5,6)) # langkah ini dilakukan untuk menyusun baris dari matrik c menjadi terstruktur seperti eliminasi gauss d[0]=c[2] d[1]=c[1] d[2]=c[4] d[3]=c[0] d[4]=c[3] # Langkah dibawah dilakukan untuk Operasi Baris Elementer matrik c n = len (d) for j in range (1,n): m=d[j][0]/d[0][0] for i in range (0,n+1): d[j][i]=d[j][i]-m*d[0][i] for j in range(2, n): m = d[j][1]/d[1][1] for i in range(1,n+1): d[j][i]=d[j][i]-m*d[1][i] for j in range(3, n): m = d[j][2]/d[2][2] for i in range(1,n+1): d[j][i]=d[j][i]-m*d[2][i] for j in range(4,n): m = d[j][3]/d[3][3] for i in range(1,n+1): d[j][i]=d[j][i]-m*d[3][i] # Langkah dibawah dilakukan untuk back substitution demi mendapatkan hasil x1, x2. x3, x4, dan x5 X = zeros((n, 1)) X[n - 1][0] = d[n-1][n]/d[n-1][n-1] for j in range(n-2,-1,-1): S=0 for i in range(j+1,n): S = S + d[j][i]*X[i][0] X[j][0] = (d[j][n]-S)/d[j][j] print(X)
Hasil coding di Python untuk penyelesaian soal diatas sebagai berkut :
Bila kita menggunakan kalkulator matriks untuk menghitung x dengan cara mencari invers dari matrik a terlebih dahulu maka hasilnya :
dan kita kalikan hasil invers a dengan matriks b maka hasilnya :
hasilnya sama dengan hasil running file Python yang telah dibuat
Problem set 7.1 no 2 hal 263
Berikut ini adalah algoritmanya :
import numpy as np # Pertama - tama kita buat dulu fungsi untuk persamaan diferensial def a(x,y) : z = ((x**2)-(4*y)) return (z) # Setelah itu kita tetapkan intial condition yang ingin dipakai x = 0 y = 1 h = 0.01 # Selanjutnya kita masukan rumus dari metode runge kutta orde 4 interval = np.arange(0,0.03,h) for t in interval : k1 = a(x,y) k2 = a((x+0.5*h),(y+0.5*k1*h)) k3 = a((x+0.5*h),(y+0.5*k2*h)) k4 = a((x+h),(y+k3*h)) y = y + 1/6*(k1+(2*k2)+(2*k3)+k4)*h print ('Maka hasil y ketika x = 0.03 adalah', y)
Ini adalah hasil input kedalam working space Pycharm :
Hasilnya running file :
Bila kita gunakan kalkulator online untuk mengecek apakah hasil ini benar
Hasilnya terbukti benar