Algoritma python untuk kuis

From ccitonlinewiki
Jump to: navigation, search

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