Difference between revisions of "Quiz 16/10/2019"

From ccitonlinewiki
Jump to: navigation, search
(Created page with "== Problem Set 2.1 == <nowiki>import numpy as np A=np.array([[1,2,0,-2,0],[0,1,0,2,-1],[0,1,-1,1,-1],[0,0,2,1,2],[0,0,0,-1,1]]) b=np.array([-4, 1, -1,1,-2]) n=len(A) #elimin...")
 
(Problem Set 2.1)
Line 1: Line 1:
 
== Problem Set 2.1 ==
 
== Problem Set 2.1 ==
<nowiki>import numpy as np
+
import numpy as np
  
 
A=np.array([[1,2,0,-2,0],[0,1,0,2,-1],[0,1,-1,1,-1],[0,0,2,1,2],[0,0,0,-1,1]])
 
A=np.array([[1,2,0,-2,0],[0,1,0,2,-1],[0,1,-1,1,-1],[0,0,2,1,2],[0,0,0,-1,1]])
 +
 
b=np.array([-4, 1, -1,1,-2])
 
b=np.array([-4, 1, -1,1,-2])
 +
 
n=len(A)
 
n=len(A)
  
 
#eliminasi gauss
 
#eliminasi gauss
 +
 
for k in range (0,n-1):  
 
for k in range (0,n-1):  
 +
 
     for i in range (k+1, n):#membuat iterasi
 
     for i in range (k+1, n):#membuat iterasi
 +
 
         if A[i,k] !=0 : #untuk melewati bilangan yang memang sudah 0 sehingga tidak terjadi kegagalan karena pembagian dengan 0
 
         if A[i,k] !=0 : #untuk melewati bilangan yang memang sudah 0 sehingga tidak terjadi kegagalan karena pembagian dengan 0
 +
 
             lam= A[i,k]/A[k,k] #baris bawah dibagi dengan baris atasnya untuk menghasilkan lambda
 
             lam= A[i,k]/A[k,k] #baris bawah dibagi dengan baris atasnya untuk menghasilkan lambda
 +
 
             A[i,k:n]= A[i, k:n]-(A[k,k:n]*lam) #rumus untuk iterasi hingga ke n yaitu  
 
             A[i,k:n]= A[i, k:n]-(A[k,k:n]*lam) #rumus untuk iterasi hingga ke n yaitu  
 +
 
             b[i]= b[i]-(b[k]*lam) #pergerakan yang ada di B, karena hanya 1 baris sehingga hanya i dan k
 
             b[i]= b[i]-(b[k]*lam) #pergerakan yang ada di B, karena hanya 1 baris sehingga hanya i dan k
 +
 
              
 
              
 
print('matrix A:', '\n', A) #melakukan pengecekan pada matrix A yang telah diubah dengan operasi iterasi di atas sehingga menghasilkan matrix segitiga atas
 
print('matrix A:', '\n', A) #melakukan pengecekan pada matrix A yang telah diubah dengan operasi iterasi di atas sehingga menghasilkan matrix segitiga atas
  
 
#back substitution
 
#back substitution
 +
 
x=np.zeros(n) #membuat matrix yang memiliki ukuran yang sama dan berisi 0 semua
 
x=np.zeros(n) #membuat matrix yang memiliki ukuran yang sama dan berisi 0 semua
 +
 
for m in range (n-1, -1, -1) : #n-1 karena phyton dimulai dari angka 0, -1 maksudnya berhenti saat m = 0, dan -1 yang terakhir maksudnya adalah penghitungan mundur
 
for m in range (n-1, -1, -1) : #n-1 karena phyton dimulai dari angka 0, -1 maksudnya berhenti saat m = 0, dan -1 yang terakhir maksudnya adalah penghitungan mundur
     x[m]= (b[m]-np.dot(A[m, m+1:n], x[m+1:n]))/A[m,m] #persamaan dari back substitution, baca mengenai dasar dari back substitutionS
+
 
 +
     x[m]= (b[m]-np.dot(A[m, m+1:n], x[m+1:n]))/A[m,m] #persamaan dari back substitution, baca mengenai dasar dari back substitution
 +
 
 
     print('nilai X', x[m]) #print hasil</nowiki>
 
     print('nilai X', x[m]) #print hasil</nowiki>
  

Revision as of 23:53, 16 October 2019

Problem Set 2.1

import numpy as np

A=np.array([[1,2,0,-2,0],[0,1,0,2,-1],[0,1,-1,1,-1],[0,0,2,1,2],[0,0,0,-1,1]])

b=np.array([-4, 1, -1,1,-2])

n=len(A)

  1. eliminasi gauss

for k in range (0,n-1):

   for i in range (k+1, n):#membuat iterasi
       if A[i,k] !=0 : #untuk melewati bilangan yang memang sudah 0 sehingga tidak terjadi kegagalan karena pembagian dengan 0
           lam= A[i,k]/A[k,k] #baris bawah dibagi dengan baris atasnya untuk menghasilkan lambda
           A[i,k:n]= A[i, k:n]-(A[k,k:n]*lam) #rumus untuk iterasi hingga ke n yaitu 
           b[i]= b[i]-(b[k]*lam) #pergerakan yang ada di B, karena hanya 1 baris sehingga hanya i dan k


print('matrix A:', '\n', A) #melakukan pengecekan pada matrix A yang telah diubah dengan operasi iterasi di atas sehingga menghasilkan matrix segitiga atas

  1. back substitution

x=np.zeros(n) #membuat matrix yang memiliki ukuran yang sama dan berisi 0 semua

for m in range (n-1, -1, -1) : #n-1 karena phyton dimulai dari angka 0, -1 maksudnya berhenti saat m = 0, dan -1 yang terakhir maksudnya adalah penghitungan mundur

   x[m]= (b[m]-np.dot(A[m, m+1:n], x[m+1:n]))/A[m,m] #persamaan dari back substitution, baca mengenai dasar dari back substitution
   print('nilai X', x[m]) #print hasil</nowiki>

Problem Set 7.1

import numpy as np #initial condition x = 0 y = 1 #membuat fungsi y terhadap x def dy (x,y): fungsi = x**2 - 4*y return(fungsi) #menentukan nilai step size h = 0.001 step = np.arange(0,0.03,h) #looping iterasi for x in step: k1 = dy(x,y) k2 = dy((x+0.5*h),(y+0.5*k1*h)) k3 = dy((x+0.5*h),(y+0.5*k2*h)) k4 = dy((x+0.5*h),(y+0.5*k3*h)) y = y + 1/6*(k1+2*k2+2*k3+k4)*h

print(y)