Difference between revisions of "Bagus Fadhlurrohman"

From ccitonlinewiki
Jump to: navigation, search
(Metode Numerik)
m
 
(30 intermediate revisions by one other user not shown)
Line 1: Line 1:
  
 
=='''Profil'''==
 
=='''Profil'''==
 +
 +
[[File:prfil ccit.jpeg|thumb|200px]]
  
 
Nama:    Bagus Fadhlurrohman
 
Nama:    Bagus Fadhlurrohman
Line 28: Line 30:
 
==''' Metode Numerik ''' ==
 
==''' Metode Numerik ''' ==
  
[[Hiburan 1]]
+
===Hiburan 1===
  
 
Mencari limit (x)=1 pada persamaan dengan pyhton
 
Mencari limit (x)=1 pada persamaan dengan pyhton
Line 76: Line 78:
 
[[File:hiburan 1.jpg]]
 
[[File:hiburan 1.jpg]]
  
[[Hiburan 2]]
+
===Hiburan 2===
  
 
Mencari nilai x pada persamaan dengan python
 
Mencari nilai x pada persamaan dengan python
Line 121: Line 123:
 
[[File:hiburan 2.jpg]]
 
[[File:hiburan 2.jpg]]
  
 +
===Hiburan 3===
  
[[Hiburan 3]]
+
Mencari nilai setiap x pada
 
 
Mencari nilai x pada
 
  
 
[[File:hiburan 3.jpg]]
 
[[File:hiburan 3.jpg]]
Line 139: Line 140:
  
 
Akan menghasilkan matriks  
 
Akan menghasilkan matriks  
[[6. 4. 0. 0.]
+
  [6. -4. 0. 0.]
   [2. 0. 1. 4.]
+
   [-4. 0. 4. 0.]
   [0. 7. 3. 4.]
+
   [-2. 0. -1. 4.]
   [4. 0. 4. 0.]]
+
   [0. 7. -3. -4.]
 
</div>
 
</div>
  
Line 151: Line 152:
 
<div border-style: inset;">
 
<div border-style: inset;">
 
  import numpy as np
 
  import numpy as np
  <br>A = np.array([[6, 4, 0, 0], [2, 0 ,1, 4], [0, 7, 3, 4], [ 4, 0, 4, 0]], float)
+
  <br> A = np.array([[6, -4, 0, 0], [-4, 0 ,4, 0], [-2, 0, -1, 4], [ 0, 7, -3, -4]], float)
B = np.array([50, 50, 0, 0], float)
+
      B = np.array([50, 0, 50, 0], float)
 
  <br>n = len(A)
 
  <br>n = len(A)
 
</div>
 
</div>
Line 165: Line 166:
 
             A[i,k:n] = A[i,k:n]-(A[k,k:n]*lam)
 
             A[i,k:n] = A[i,k:n]-(A[k,k:n]*lam)
 
             B[i] = B[i]-(B[k]*lam)
 
             B[i] = B[i]-(B[k]*lam)
 +
</div>
 +
 +
lalu dengan back subs
 +
 +
<div border-style: inset;">
 
  x = np.zeros(n,float)
 
  x = np.zeros(n,float)
 
  for m in range(n-1,-1,-1):
 
  for m in range(n-1,-1,-1):
Line 170: Line 176:
 
</div>
 
</div>
  
'''Results'''
+
''hasilnya adalah''
 +
 
 +
[[File:Screenshot 3.png]]
 +
 
 +
 
 +
===Quiz 1===
 +
 
 +
[[File:quiz 1 no 1.jpg]]
 +
 
 +
1. Mencari nilai setiap x
 +
 
 +
step 1 membuat matriks pada python
 +
 
 +
<div border-style: inset;">
 +
import numpy as np
 +
<br> A = np.array([[1, 2, 0, -2, 0], [0, 1 ,0, 2,-1], [0, 1, -1, 1, -1], [ 0, 0, 0, -1, 1], [0, 0, 2, 1, 2]], float)
 +
    B = np.array([-4, 1, -1, -2, 1], float)
 +
<br>n = len(A)
 +
<div>
 +
 
 +
dengan eliminasi gauss
 +
 
 +
<div border-style: inset;">
 +
for k in range(0,n-1):
 +
    for i in range(k+1,n):
 +
        if A[i,k]!=0 :
 +
            lam = A[i,k]/A[k,k]
 +
            A[i,k:n] = A[i,k:n]-(A[k,k:n]*lam)
 +
            B[i] = B[i]-(B[k]*lam)
 +
</div>
 +
 +
lalu dengan back subs
 +
 
 +
<div border-style: inset;">
 +
x = np.zeros(n,float)
 +
for m in range(n-1,-1,-1):
 +
    x[m]=(B[m]-np.dot(A[m,m+1:n],x[m+1:n]))/A[m,m]
 +
</div>
 +
 
 +
''hasilnya adalah''
 +
 
 +
[[File:jawaban.png]]
 +
 
 +
[[File:quiz 1 no 2.jpg]]
 +
 
 +
2. Mencari di y(0.03)
 +
 
 +
<div border-style: inset;">
 +
import numpy as np
 +
from run_kut2 import *
 +
from printSoln import *
 +
from math import exp
 +
def F(x,y):
 +
    F = np.zeros(1)
 +
    F[0] = x**2 - 4.0*y[0]
 +
    return F
 +
x = 0.0 # Start of integration
 +
xStop = 0.03 # End of integration
 +
y = np.array([1.0]) # Initial values of {y}
 +
h = 0.01 # Step size
 +
freq = 20 # Printout frequency
 +
X,Y = integrate(F,x,y,xStop,h)
 +
printSoln(X,Y,freq)
 +
input("\nPress return to exit")
 +
<div>
 +
 
 +
[[File:jawaban2.png]]
 +
 
 +
===UTS===
 +
 
 +
no. 1
 +
 
 +
[[File : nomor 1.MP4]]
 +
 
 +
import numpy as np
 +
def GEPP(A, b):
 +
    '''
 +
    Gaussian elimination with partial pivoting.
 +
    % input: A is an n x n nonsingular matrix
 +
    %        b is an n x 1 vector
 +
    % output: x is the solution of Ax=b.
 +
    % post-condition: A and b have been modified.
 +
    '''
 +
    n =  len(A)
 +
    if b.size != n:
 +
        raise ValueError("Invalid argument: incompatible sizes between A & b.", b.size, n)
 +
    # k represents the current pivot row. Since GE traverses the matrix in the upper
 +
    # right triangle, we also use k for indicating the k-th diagonal column index.
 +
        for k in xrange(n-1):
 +
        #Choose largest pivot element below (and including) k
 +
            maxindex = abs(A[k:,k]).argmax() + k
 +
        if A[maxindex, k] == 0:
 +
            raise ValueError("Matrix is singular.")
 +
        #Swap rows
 +
        if maxindex != k:
 +
            A[[k,maxindex]] = A[[maxindex, k]]
 +
            b[[k,maxindex]] = b[[maxindex, k]]
 +
        for row in xrange(k+1, n):
 +
            multiplier = A[row][k]/A[k][k]
 +
            #the only one in this column since the rest are zero
 +
            A[row][k] = multiplier
 +
            for col in xrange(k + 1, n):
 +
                A[row][col] = A[row][col] - multiplier*A[k][col]
 +
            #Equation solution column
 +
            b[row] = b[row] - multiplier*b[k]
 +
    def _backsub(self):
 +
        # Back Substitution
 +
        self.x = np.zeros(self.n)
 +
        for k in range(self.n - 1, -1, -1):
 +
            self.x[k] = (self.b[k] - np.dot(self.A[k, k + 1:], self.x[k + 1:])) / self.A[k, k]
 +
    print (A)
 +
    print (b)
 +
    x = np.zeros(n)
 +
    k = n-1
 +
    x[k] = b[k]/A[k,k]
 +
    while k >= 0:
 +
        x[k] = (b[k] - np.dot(A[k,k+1:],x[k+1:]))/A[k,k]
 +
        k = k-1
 +
        return x
 +
 
 +
if __name__ == "__main__":
 +
    A = np.array([[1.,0.,0.,0.],[-1.,1.,0.,0.],[0.,0.,-1.,1.],[0.,0.,0.,1.]])
 +
    b =  np.array([[20.],[10.],[15.],[20.]])
 +
    print (GEPP(A,b))
 +
 
 +
no. 2
 +
 
 +
[[File : nomor 2.MP4]]
 +
 
 +
import numpy as np
 +
 
 +
# Python program to implement Runge Kutta method
 +
# Percepatan dari mobil adalah 5 m/s**2
 +
# Gesekan udara dan mobil adalah -0.002*V m/s and -1m/s**2
 +
# maka persamaannya menjadi  v = 5*t - 1*t - 0.002*v
 +
# contoh "dv / dt = 4/1.002"
 +
 
 +
def dvdt(t,v):
 +
    return (4/1.002)
 +
 
 +
#Mencari nilai y saat x dengan step sixe h
 +
# Dengan nilai awal y0 dan x0.
 +
def rungeKutta(t0, v0, t, h):
 +
    #count number of step size
 +
    #step h
 +
    n = (int)((t - t0)/h)
 +
    v = v0
 +
    for i in range (1, n + 1):
 +
        "menggunakan rangeKutta"
 +
        k1 = h * dvdt(t0, v)
 +
        k2 = h * dvdt(t0 + 0.5 * h, v + 0.5 * k1)
 +
        k3 = h * dvdt(t0 + 0.5 * h, v + 0.5 * k2)
 +
        k4 = h * dvdt(t0 + h, v + k3)
 +
 +
        #next value of v
 +
        v = v + (1.0 / 6.0)*(k1 + 2 * k2 + 2 * k3 + k4)
 +
        # Update next value of t
 +
        t0 = t0 + h
 +
    return v
 +
# Driver method
 +
t0 = 0
 +
 
 +
v = 2
 +
 
 +
t = 3
 +
 
 +
h = 0.1
 +
 
 +
print ('Nilai dari y saat s adalah:', rungeKutta(t0, v, t, h))
  
 
==''' Tugas Mekanika Fluida''' ==
 
==''' Tugas Mekanika Fluida''' ==

Latest revision as of 13:01, 28 October 2019

Profil

Prfil ccit.jpeg

Nama: Bagus Fadhlurrohman

NPM: 1706070633

Fakultas: Teknik

Jurusan: Teknik Mesin

BIOGRAFI

Nama saya Bagus Fadhlurrohman lahir pada tanggal 15 Juli 1999 di kota Jakarta. Saya merupakan anak pertama dari 2 bersaudara. Ayah saya seorang karyawan dan ibu saya seorang ibu rumah tangga. Saya memiliki 1 adik laki-laki yang sudah menjadi mahasiswa.

Riwayat pendidikan

2003-2005 TK Aisiyah 04 Tebet Timur

2005-2011 SDN Tebet Barat 05 Pagi

2011-2014 SMPN 115 Jakarta

2014-2017 SMAN 8 Jakarta

2017-.... S1 Teknik Mesin Universitas Indonesia

Metode Numerik

Hiburan 1

Mencari limit (x)=1 pada persamaan dengan pyhton

(x**2-1) / ((x-1)

step 1

Membuka python idle lulu mengetik program seperti berikut

def limit (x) :

   try:
       a = (x**2-1)
       b = (x-1)
       result = a / b
       print (result)
   except ZeroDivisionError:
       c = ((x+(1/99))**2-1) / ((x+(1/99))-1)
       print (c)
       d = ((x+(1/999))**2-1) / ((x+(1/999))-1)
       print  (d)
       e = ((x+(1/9999))**2-1) / ((x+(1/9999))-1)
       print  (e)
       f = ((x+(1/99999))**2-1) / ((x+(1/99999))-1)
       print  (f)
       g = ((x+(1/999999))**2-1) / ((x+(1/999999))-1)
       print  (g)
       h = ((x+(1/9999999))**2-1) / ((x+(1/9999999))-1)
       print  (h)
       print ("mendekati angka 2")
   else:
       print ("hasilnya", resut)
   finally:
       print ("sudah") 
       

step 2

simpan program dalam bentik file.py

step 3

jalankan program pada python

step 4

nanti akan mendapatkan hasil File:Hiburan 1.jpg

Hiburan 2

Mencari nilai x pada persamaan dengan python

8x**4 + 2x**3 + x**2 - x = 0

step 1

Membuka python idle lulu mengetik program seperti berikut

def f(x):

  return 8*x**3 + 2*x**2 + x - 1

def fprime(x):

  return 24*x**2 + 4*x +1

ep = 0.001

gu = -10 i = 0

print('8*x**3 + 2*x**2 + x - 1')

print('Results by Python 3.7')

while abs(f(gu)) >= ep:

  gu = gu - (f(gu)/fprime(gu))
  i += 1
  print(' ' + str(i) + ' ' + str(round(gu,7)))

print('The root approach is ' + str(round(gu,2)) +

    '| failed to calculate: ' + str(i) + ' times' )

step 2

simpan program dalam bentik file.py

step 3

jalankan program pada python

step 4

nanti akan mendapatkan hasil File:Hiburan 2.jpg

Hiburan 3

Mencari nilai setiap x pada

Hiburan 3.jpg

step 1

Tentukan persamaan pada gambar tersebut

6x1 + 4x2 = 50
2x1 + x3 + 4x4 = 50
7x2 + 3x3 + 4x4 = 50
4x1 + 4x3 = 50

Akan menghasilkan matriks

 [6. -4. 0. 0.]
 [-4. 0. 4. 0.]
 [-2. 0. -1. 4.]
 [0. 7. -3. -4.]

step 2

tuliskan matriks di python seperti berikut

import numpy as np

A = np.array([[6, -4, 0, 0], [-4, 0 ,4, 0], [-2, 0, -1, 4], [ 0, 7, -3, -4]], float) B = np.array([50, 0, 50, 0], float)
n = len(A)

dengan eliminasi gauss

for k in range(0,n-1):
    for i in range(k+1,n):
        if A[i,k]!=0 :
            lam = A[i,k]/A[k,k] 
            A[i,k:n] = A[i,k:n]-(A[k,k:n]*lam)
            B[i] = B[i]-(B[k]*lam)

lalu dengan back subs

x = np.zeros(n,float)
for m in range(n-1,-1,-1):
    x[m]=(B[m]-np.dot(A[m,m+1:n],x[m+1:n]))/A[m,m]

hasilnya adalah

Screenshot 3.png


Quiz 1

Quiz 1 no 1.jpg

1. Mencari nilai setiap x

step 1 membuat matriks pada python

import numpy as np

A = np.array([[1, 2, 0, -2, 0], [0, 1 ,0, 2,-1], [0, 1, -1, 1, -1], [ 0, 0, 0, -1, 1], [0, 0, 2, 1, 2]], float) B = np.array([-4, 1, -1, -2, 1], float)
n = len(A)

dengan eliminasi gauss

for k in range(0,n-1):
    for i in range(k+1,n):
        if A[i,k]!=0 :
            lam = A[i,k]/A[k,k] 
            A[i,k:n] = A[i,k:n]-(A[k,k:n]*lam)
            B[i] = B[i]-(B[k]*lam)

lalu dengan back subs

x = np.zeros(n,float)
for m in range(n-1,-1,-1):
    x[m]=(B[m]-np.dot(A[m,m+1:n],x[m+1:n]))/A[m,m]

hasilnya adalah

Jawaban.png

Quiz 1 no 2.jpg

2. Mencari di y(0.03)

import numpy as np
from run_kut2 import *
from printSoln import *
from math import exp
def F(x,y):
    F = np.zeros(1)
    F[0] = x**2 - 4.0*y[0]
    return F
x = 0.0 # Start of integration
xStop = 0.03 # End of integration
y = np.array([1.0]) # Initial values of {y}
h = 0.01 # Step size
freq = 20 # Printout frequency
X,Y = integrate(F,x,y,xStop,h)
printSoln(X,Y,freq)
input("\nPress return to exit")

Jawaban2.png

UTS

no. 1

import numpy as np def GEPP(A, b):

   
   Gaussian elimination with partial pivoting.
   % input: A is an n x n nonsingular matrix
   %        b is an n x 1 vector
   % output: x is the solution of Ax=b.
   % post-condition: A and b have been modified. 
   
   n =  len(A)
   if b.size != n:
       raise ValueError("Invalid argument: incompatible sizes between A & b.", b.size, n)
   # k represents the current pivot row. Since GE traverses the matrix in the upper 
   # right triangle, we also use k for indicating the k-th diagonal column index.
       for k in xrange(n-1):
       #Choose largest pivot element below (and including) k
           maxindex = abs(A[k:,k]).argmax() + k
       if A[maxindex, k] == 0:
           raise ValueError("Matrix is singular.")
       #Swap rows
       if maxindex != k:
           Ak,maxindex = Amaxindex, k
           bk,maxindex = bmaxindex, k
       for row in xrange(k+1, n):
           multiplier = A[row][k]/A[k][k]
           #the only one in this column since the rest are zero
           A[row][k] = multiplier
           for col in xrange(k + 1, n):
               A[row][col] = A[row][col] - multiplier*A[k][col]
           #Equation solution column
           b[row] = b[row] - multiplier*b[k]
   def _backsub(self):
        # Back Substitution
        self.x = np.zeros(self.n)
        for k in range(self.n - 1, -1, -1):
            self.x[k] = (self.b[k] - np.dot(self.A[k, k + 1:], self.x[k + 1:])) / self.A[k, k]
   print (A)
   print (b)
   x = np.zeros(n)
   k = n-1
   x[k] = b[k]/A[k,k]
   while k >= 0:
       x[k] = (b[k] - np.dot(A[k,k+1:],x[k+1:]))/A[k,k]
       k = k-1
       return x

if __name__ == "__main__":

   A = np.array([[1.,0.,0.,0.],[-1.,1.,0.,0.],[0.,0.,-1.,1.],[0.,0.,0.,1.]])
   b =  np.array([[20.],[10.],[15.],[20.]])
   print (GEPP(A,b))

no. 2

import numpy as np

# Python program to implement Runge Kutta method
# Percepatan dari mobil adalah 5 m/s**2
# Gesekan udara dan mobil adalah -0.002*V m/s and -1m/s**2
# maka persamaannya menjadi  v = 5*t - 1*t - 0.002*v
# contoh "dv / dt = 4/1.002"

def dvdt(t,v):

    return (4/1.002)
#Mencari nilai y saat x dengan step sixe h
# Dengan nilai awal y0 dan x0.

def rungeKutta(t0, v0, t, h):

    #count number of step size
    #step h
    n = (int)((t - t0)/h)
    v = v0
    for i in range (1, n + 1):
        "menggunakan rangeKutta"
        k1 = h * dvdt(t0, v)
        k2 = h * dvdt(t0 + 0.5 * h, v + 0.5 * k1)
        k3 = h * dvdt(t0 + 0.5 * h, v + 0.5 * k2)
        k4 = h * dvdt(t0 + h, v + k3)

        #next value of v
        v = v + (1.0 / 6.0)*(k1 + 2 * k2 + 2 * k3 + k4)
        # Update next value of t
        t0 = t0 + h
    return v
# Driver method 

t0 = 0

v = 2

t = 3

h = 0.1

print ('Nilai dari y saat s adalah:', rungeKutta(t0, v, t, h))

Tugas Mekanika Fluida

Studi Kasus Bab 8

Studi Kasus Bab 9

Studi Kasus Bab 10

Studi Kasus Bab 11

Video Bab 8

Video Bab 11