You are on page 1of 9

Tugas Akhir

PRAKTIKUM
METODE NUMERIK

OLEH:
NAMA : ASLAN HERU ANSABRI
NIM : F1A221028
KELOMPOK : II (DUA)

PROGRAM STUDI S1 STATISTIKA


FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS HALU OLEO
KENDARI
2022
Soal:
1. Carilah nilai x yang memenuhi persamaan berikut menggunakan software R .
2x3 – ( x + 9 )2 -Ax + B = 0,
Dengan menggunakan salah satu metode : Metode Bagi Dua (Bisection),
Metode Newton-Raphson, Metode Secant (galat = 1 × 10-7 , maksimal sampai
iterasi ke-50)
2. Carilah nilai w, y, dan z dari persamaan berikut menggunakan software R.
2w – 5x + 9y -3z = A
6w + 3x – 7y – z = B
5w – x – 8y + 2z = A + B
3w + 4x – 6y + 6z = A – B
3. Carilah invers matriks menggunakan OBE di software R.

( )
A 3 −7
−2 4 B
−1 AB 11
Ket : Gantilah nilai A dan B dengan 2 digit angka terakhir dari NIM Anda.
Contoh : NIM : F1A221028, berarti A = 2 dan B = 8.
Jawab:
1. Program Newton-Raphson
Program:
A=2
B=8
f=function(x){
2*x^3-A*x+B}
turunan=function(x){
3*2*x^2-A}
x=0.2
e=1*10^-7
i=1
data=data.frame()
repeat{
data[i,1]=(i-1)
data[i,2]=x
data[i,3]=f(x)
data[i,4]=turunan(x)
x.baru=x-(f(x)/turunan(x))
data[i,5]=x.baru
data[i,6]=abs(x.baru-x)
if(abs(x.baru-x)<=e){break}
i=i+1
x=x.baru}
colnames data)=c("iterasi","x","f(x)","f'(x)","x1","|x1-
(

x2|")
data

Output:

Interpretasi:
Pada program diatas dimulai dengan menuliskan A = 2 dan B = 8 sesuai
dengan 2 digit angka terakhir dari NIM. Selanjutnya diberikan function untuk
argumen yang akan diberikan kepada ekspresi berikutnya. Lalu masukkan
fungsi f(x) dan juga f’(x), kemudian memasukkan nilai y = 0.2 dengan nilai
galat sebesar 1 × 10-7 kemudian kumpulan data dimasukkan kedalam data,
kemudian data.frame merupakan tabel atau struktur seperti array dua dimensi
setiap kolom berisi nilai dari satu variabel dan setiap baris berisi satu variabel
dan setiap berisi satu set nilai dari setiap kolom. Selanjutnya, untuk data[i,1]
maksudnya baris ke-i dengan dimulai dengan iterasi pertama dan pada
data[i,2] maksudnya pada baris ke-i dan kolom kedua berisi nilai y, data[i,3]
maksudnya pada baris ke-i dan kolom ketiga berisi nilai F(x), data[i,4]
maksudnya pada baris ke-i dan kolom keempat berisi nilai turunan (y)
selanjutnya memasukkan perhitungan untuk nilai x.baru dengan membagi
nilai f(x) dengan turunan (x) lalu dikurangkan dengan nilai x pada iterasi
sebelumnya. Nilai x.baru akan dimunculkan pada kolom kelima dan pada
kolom keenam merupakan nilai mutlak pada x.baru-x kemudian nilai nilai
x.baru-x lebih kecil dari galat maka proses akan terhenti jika belum
memenuhi maka program akan berjalan terus. Pada output dimunculkan hasil
sebanyak 13 iterasi dengan nilai x, nilai f (x). Nilai turunan f’(x) dapat dilihat
pada output diatas.
2. Program Eliminasi Gauss
Progam:
A=2
B=8
r=matrix(c(2,-5,9,-3,6,3,-7,-1,5,-1,-8,2,3,4,-
6,6),4,4,byrow=T)
s=matrix(c((A),(B),(A+B),(A-B)),4,1)
gab=cbind(r,s)
gab
gauss<-function(m){
count.rows<-nrow(m)
count.cols<-ncol(m)
piv<-1
for(row.curr in 1:count.rows)
if(piv<=count.cols){
i<-row.curr
while(m[i,piv]==0&&i<count.rows){
i<-i+1
if(i>count.rows){
i<-row.curr
piv<-piv+1
if(piv>count.cols)
return(m)
}
}
if(i!=row.curr)
m<-swaprows(m,i,row.curr)
for(j in row.curr:count.rows)
if(j!=row.curr){
k<-m[j,piv]/m[row.curr,piv]
m<-replacerow(m,row.curr,j,-k)
}
piv<-piv+1
}
return(m)}
gauss(gab)

Output:

Interpretasi:
Pada program diatas dicantumkan nilai A = 2 dan nilai B = 8 kemudian
dimasukkan matriks r dan s. pada program digunakan cbind yang dimana
berfungsi untuk membuat matriks. Count rows dan count cols berturut-turut
berfungsi untuk menghitung jumlah rekaman pada tabel atau data. Program
diatas menjelaskan bahwa dengan menggunakan fungsi gauss (m) untuk
memasukan nilai kolom dan baris dalam membentuk matriks dengan piv = 1.
Dengan menggunakan perulangan for untuk memasukan row.curr adalah 1 ke
dalam baris dengan jika piv = masukan kolom, dimana i = row.cur. Namun,
jika m merupakan selang dari i dan piv = variabel 0&&i < masukan baris,
dengan i = i +1. Jika i > dari masukan baris, maka i = row.cur dengan piv + 1.
Jika piv-nya malah yang > masukan kolom, maka akan langsung di return pada
fungsi m. Setelah dengan membatasi dengan kurung siku, dimasukan lagi jika i
adalah row.cur dengan nilai fungsi m = swaprows nilai m, i, dan row.cur. Pada
j masukan row.cur dan masukan baris, jika nilai j = row.cur. Nilai k = m yang
merupakan selang j dan piv / m selang row.curr dan piv, dengan m akan ditaruh
dengan m,row.curr,j,-k. Dengan piv = piv + 1, dilanjutkan dengan return fungsi
m. Selanjutnya, membuat matriks s dengan ukuran 4×1 lalu digabungkan
matriks r dan s sehingga terbentuk matriks berukuran 4×5. Selanjutnya,
menggunakan operasi baris elementer untuk memebentuk segitiga
atas.Sehingga menghasilkan matriks segitiga atas seperti pada output.
Mencari nilai w, x, y, dan z sebagai berikut:
Diketahui dari hasil output program diatas didapatkan persamaan baru yaitu:
2w – 5x + 9y - 3z = 2
18x – 34y + 8z = 2
-8,777778y + 4,388889z = 3,722222
6,5z = -9,335443
Untuk menyelesaikan persamaan diatas maka:
a. 6,5z = -9,335443
z = -1,436222
b. Substitusikan z ke persamaan -8,777778y + 4,388889z = 3,722222
-8,777778y + 4,388889z = 3,722222
-8,777778y + 4,388889(-1,436222) = 3,722222
-8,777778y – 6,303418 = 3,722222
-8,777778y = 3,722222 + 6,303418
y = -1,14216
c. Substitusikan y dan z ke persamaan 18x – 34y + 8z = 2
18x – 34y + 8z = 2
18x – 34(-1,14216) + 8(-1,436222) = 2
18x + 38,83344 – 11,489776 = 2
18x + 27,343664 = 2
x = -1,40798
d. Substitusikan x, y dan z ke persamaan 2w – 5x + 9y - 3z = 2
2w – 5x + 9y - 3z = 2
2w – 5(-1,436222) + 9(-1,14216) - 3(-1,40798) = 2
2w + 7,18111 – 10,27944 + 4,22394= 2
2w + 1,12561 = 2
w = 0,437195
Jadi, nilai w,x, y, dan z dari persamaan diatas yaitu berturut-turut 0,437195;
-1,40798; -1,14216; -1,436222.
3. Program:
a=matrix(c(2,3,-7,-2,4,8,-1,28,11),byrow = TRUE,3,3)
b=matrix(c(1,0,0,0,1,0,0,0,1),byrow = TRUE,3,3)
m=cbind(a,b)
m
gab=cbind(a,b)
gab
gab=replacerow(gab,3,2,-4/2)
gab
gab=replacerow(gab,1,3,1/2)
gab
gab=replacerow(gab,2,1,3/52)
gab
gab=replacerow(gab,2,3,-29.5/-52)
gab
gab=replacerow(gab,3,1,(-gab[1,3]/gab[3,3]))
gab
gab=replacerow(gab,3,2,(-gab[2,3]/gab[3,3]))
gab
scalerow<-function(m,row,k){
m[row,]<-m[row,]*k
return(m)}
gab<-scalerow(gab,1,1/2)
gab
gab<-scalerow(gab,2,1/-52)
gab
gab<-scalerow(gab,3,1/-0.4423077)
gab
Output:
> m
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 2 3 -7 1 0 0
[2,] -2 4 8 0 1 0
[3,] -1 28 11 0 0 1
> gab=cbind(a,b)
> gab
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 2 3 -7 1 0 0
[2,] -2 4 8 0 1 0
[3,] -1 28 11 0 0 1
> gab=replacerow(gab,3,2,-4/2)
> gab
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 2 3 -7 1 0 0
[2,] 0 -52 -14 0 1 -2
[3,] -1 28 11 0 0 1
> gab=replacerow(gab,1,3,1/2)
> gab
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 2 3.0 -7.0 1.0 0 0
[2,] 0 -52.0 -14.0 0.0 1 -2
[3,] 0 29.5 7.5 0.5 0 1
> gab=replacerow(gab,2,1,3/52)
> gab
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 2 0.0 -7.807692 1.0 0.05769231 -0.1153846
[2,] 0 -52.0 -14.000000 0.0 1.00000000 -2.0000000
[3,] 0 29.5 7.500000 0.5 0.00000000 1.0000000
> gab=replacerow(gab,2,3,-29.5/-52)
> gab
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 2 0 -7.8076923 1.0 0.05769231 -0.1153846
[2,] 0 -52 -14.0000000 0.0 1.00000000 -2.0000000
[3,] 0 0 -0.4423077 0.5 0.56730769 -0.1346154
> gab=replacerow(gab,3,1,(-gab[1,3]/gab[3,3]))
> gab
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 2 0 0.0000000 -7.826087 -9.9565217 2.2608696
[2,] 0 -52 -14.0000000 0.000000 1.0000000 -2.0000000
[3,] 0 0 -0.4423077 0.500000 0.5673077 -0.1346154
> gab=replacerow(gab,3,2,(-gab[2,3]/gab[3,3]))
> gab
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 2 0 0.0000000 -7.826087 -9.9565217 2.2608696
[2,] 0 -52 0.0000000 -15.826087 -16.9565217 2.2608696
[3,] 0 0 -0.4423077 0.500000 0.5673077 -0.1346154
> scalerow<-function(m,row,k){
+ m[row,]<-m[row,]*k
+ return(m)}
> gab<-scalerow(gab,1,1/2)
> gab
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 0 0.0000000 -3.913043 -4.9782609 1.1304348
[2,] 0 -52 0.0000000 -15.826087 -16.9565217 2.2608696
[3,] 0 0 -0.4423077 0.500000 0.5673077 -0.1346154
> gab<-scalerow(gab,2,1/-52)
> gab
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 0 0.0000000 -3.9130435 -4.9782609 1.13043478
[2,] 0 1 0.0000000 0.3043478 0.3260870 -0.04347826
[3,] 0 0 -0.4423077 0.5000000 0.5673077 -0.13461538
> gab<-scalerow(gab,3,1/-0.4423077)
> gab
[,1] [,2] [,3] [,4] [,5] [,6]
[1,] 1 0 0 -3.9130435 -4.978261 1.13043478
[2,] 0 1 0 0.3043478 0.326087 -0.04347826
[3,] 0 0 1 -1.1304348 -1.282609 0.30434782

Interpretasi:
Berdasarkan program di atas, pada awal membuat matriks a dengan
ukuran 3 × 3 dengan argument byrow=true artinya matriks setiap elemen x
akan diisikan ke m dengan memenuhi baris terlebih dahulu. Selanjutnya,
membuat matriks b dengan ukuran 3 × 3 lalu digabungkan matriks a dan b
sehingga terbentuk matriks berukuran 3 × 6. Selanjutnya, menggunakan
operasi baris elementer untuk memebentuk segitiga atas. Untuk menolkan
-2 pada baris kedua digunakan operasi (gab,3,2,-4/2) artinya baris kedua
ditambah dengan baris ketiga dikalikan -4/2. Untuk menolkan -1 pada
baris ketiga digunakan operasi (gab,1,3,1/2) artinya baris ketiga ditambah
1
dengan yang dikalikan kolom pertama, dan begitu pula pada entry
2
berikutnya.

You might also like