Difference between revisions of "Algoritma python untuk kuis"

From ccitonlinewiki
Jump to: navigation, search
 
(4 intermediate revisions by the same user not shown)
Line 9: Line 9:
 
           [1,2,0,-2,0],\
 
           [1,2,0,-2,0],\
 
           [0,0,0,-1,1],\
 
           [0,0,0,-1,1],\
           [0,1,-1,1,1]])
+
           [0,1,-1,1,-1]])
 
  b = array([[1],\
 
  b = array([[1],\
 
           [1],\
 
           [1],\
Line 56: Line 56:
  
 
Hasil coding di Python untuk penyelesaian soal diatas sebagai berkut :
 
Hasil coding di Python untuk penyelesaian soal diatas sebagai berkut :
[[File:Algoritma_1.JPG]]
+
[[File:Algoritma_6.JPG]]
  
  
Line 65: Line 65:
  
  
[[File:Algoritma_4.JPG]]
+
[[File:Algoritma_7.JPG]]
  
  
BIla kita menggunakan kalkulator matriks untuk menghitung x dengan cara mencari invers dari matrik a terlebih dahulu maka hasilnya :
+
Bila kita menggunakan kalkulator matriks untuk menghitung x dengan cara mencari invers dari matrik a terlebih dahulu maka hasilnya :
  
[[File:Matrik.JPG]]
+
[[File:Nn.JPG]]
  
 
dan kita kalikan hasil invers a dengan matriks b maka hasilnya :
 
dan kita kalikan hasil invers a dengan matriks b maka hasilnya :
  
[[File:Matrik_6.JPG]]
+
[[File:Nn4.JPG]]
  
 
hasilnya sama dengan hasil running file Python yang telah dibuat
 
hasilnya sama dengan hasil running file Python yang telah dibuat
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]]
 +
 +
Bila kita gunakan kalkulator online untuk mengecek apakah hasil ini benar
 +
 +
[[File:Hasil_kalkulator.JPG]]
 +
 +
Hasilnya terbukti benar

Latest revision as of 14:52, 17 October 2019

Problem set 2.1 no 6 hal 55 (buku "Numerical Methods in Engineering with Python 3")

Soal 2.1 no 6.JPG

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 : Algoritma 6.JPG


Algoritma 2.JPG


Algoritma 3.JPG


Algoritma 7.JPG


Bila kita menggunakan kalkulator matriks untuk menghitung x dengan cara mencari invers dari matrik a terlebih dahulu maka hasilnya :

Nn.JPG

dan kita kalikan hasil invers a dengan matriks b maka hasilnya :

Nn4.JPG

hasilnya sama dengan hasil running file Python yang telah dibuat


Problem set 7.1 no 2 hal 263

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 :

Algoritma 5.JPG

Hasilnya running file :

Hasil.JPG

Bila kita gunakan kalkulator online untuk mengecek apakah hasil ini benar

Hasil kalkulator.JPG

Hasilnya terbukti benar