Difference between revisions of "Algoritma python untuk kuis"
Line 68: | Line 68: | ||
− | + | Bila kita menggunakan kalkulator matriks untuk menghitung x dengan cara mencari invers dari matrik a terlebih dahulu maka hasilnya : | |
[[File:Matrik.JPG]] | [[File:Matrik.JPG]] | ||
Line 81: | Line 81: | ||
== Problem set 7.1 no 2 hal 263 == | == Problem set 7.1 no 2 hal 263 == | ||
[[File:Problem_7.1.JPG]] | [[File:Problem_7.1.JPG]] | ||
+ | |||
+ | 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 : | ||
+ | [[File:Algoritma_5.JPG]] | ||
+ | |||
+ | Hasilnya running file : | ||
+ | [[File:Hasil.JPG]] |
Revision as of 14:08, 17 October 2019
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)