OLEH KELOMPOK II :
2019
Computer Problem 4.2 halaman 106 No. 3b
Write a MATLAB function to solve the system of equations that finds the coefficients a1, a2, a3
of a parabola defined by y = a1x2 + a2x+ a3 given three points through which the parabola
passes. Find the equation of the parabolas passing through the following set of points : (1, 5.0),
(−2, 7.1), (3, 6.6).
Solusi :
a. MATLAB Script
a 1 ( 1 )2+ a2 (1 )+ a3=5
1 1 1 a1 5
[ 4 −2 1
9 3 1 ][] [ ]
a2 = 7.1
a3 6.6
The augmented matrix along with the row multipliers mi1 are
Pivotal element → 1 1 1 a1 5
m21=4
m31=9
4 −2 1
9 3 1 [ ][] [ ]
a2 = 7.1
a3 6.6
Pertama, dilakukan reduksi baris kedua dan ketiga terhadap baris pertama, maka
diperoleh hasil sebagai berikut:
1 1 1 a1 5
Pivotal element →
m32=−6 [
0 −6 −3
0 −6 −8 ][ ] [ ]
a2 = −12.9
a3 −38.4
Terakhir, dilakukan reduksi baris ketiga terhadap baris kedua, maka diperoleh
triangular system sebagai berikut:
1 1 1 a1 5
[ 0 −6 −3
0 0 −5 ][ ] [ ]
a2 = −12.9
a3 −25.5
a. -5a 3 = -25.5
−25.5
a 3= =5.1
−5
b. -6a 2 - 3a 3 = -12.9
-6a 2 – 3(5.1)= -12.9
-6a 2 – 15.3 = -12.9
2.4
a 2= = -0.4
−6
c. a 1 + a 2 +a 3 = 5
a 1 + -0.4 + 5.1 = 5
a 1 + 4.7 = 5
a 1 = 0.3
Solusi :
a. MATLAB Script
function [oC,oX] = gaussel(A,b)
% Solve the system Ax=b using Gaussian elimination with scaled
% partial pivoting.
n=length(b);
x=zeros(n,1);
augm =[A b];
for i=1:n
d(i)=i;
smax=0;
for j=1:n
smax=max(smax,abs(A(i,j)));
end
c(i)=smax;
end
for k=1:n-1
rmax=0;
for i=k:n
R=abs(A(d(i),k))/c(d(i));
if (R>rmax)
j=i;
rmax=R;
end
end
dk=d(j);
d(j)=d(k);
d(k)=dk;
for i=k+1:n
m=A(d(i),k)/A(dk,k);
for j=k+1:n
A(d(i),j)=A(d(i),j)-m*A(dk,j);
end
A(d(i),k)=m;
end
end
% Perform the back substitution.
for k=1:n-1
for i=k+1:n
b(d(i))=b(d(i))-b(d(k))*A(d(i),k);
end
end
x(n)=b(d(n))/A(d(n),n);
for i=n-1:-1:1
S=b(d(i));
for j=i+1:n
S=S-A(d(i),j)*x(j);
end
x(i)=S/A(d(i),i);
end
for i=1:n
M(i,:)=A(d(i),:);
end
for i=1:n
for j=1:n
if (j<i) M(i,j)=0; end
end
end
C=[M b];
oC=C;
oX=x;
end
b. Penjelasan
Pada kasus ini, diberikan matriks sebagai berikut:
−3.481 4.701 −6.085 −6.867 x1 2.511
][ ] [ ]
−6.867
m21=7.024
m31=9.661
m41=7.614
[ 7.024 −1.611 −2.494
9.661 9.023 −9.422
7.614 −8.928 −5.643
−4.337
7.129
−8.261
x2
x3
x4
=
−4.144
−7.448
−2.143
Pertama, dilakukan reduksi baris kedua, ketiga dan keempat terhadap baris pertama,
maka diperoleh hasil sebagai berikut:
4.701 x1 2.511
][ ] [ ]
¿ −3.481 −6.085 −6.867
Pivotal element →
m32=22.06993
m42=1.354509
[
0
0
0
7.874729 14.7724
22.06993 −26.31
1.354509 18.9527
18.1933
11.9293
23.2812
x2
x3
x4
=
0.922723
−0.47909
3.349317
Selanjutnya, dilakukan reduksi baris ketiga dan keempat terhadap baris kedua, maka
diperoleh hasil sebagai berikut:
4.701 x1 2.511
][ ] [ ]
−3.481 −6.085 −6.867
[
¿
¿ 0 7.874729 14.7724 18.1933 x2 0.922723
Pivotal element → =
0 0 15.09145 39.05971 x3 −3.06514
m43=−16.4118 0 0 −16.4118 −20.1518 x4 3.190602
Kemudian, dilakukan reduksi baris keempat terhadap baris ketiga, maka diperoleh
hasil akhir matriks sebagai berikut:
4.701 x1 2.511
][ ] [ ]
−3.481 −6.085 −6.867
[ 0
0
0
7.874729 14.7724 18.1933
0
0
15.09145 39.05971
0 22.32516
x2
x3
x4
=
0.922723
−3.06514
−0.1427
Berdasarkan pada matriks yang diperoleh pada bagian terakhir, maka koefisien x 1, x 2,
x 3 dapat dihitung sebagai berikut:
a. 22.32516 x 4 = −0.1427
−0.1427
x4 = =0.00639
22.32516
Gambar 2 . Tampilan Sistem Perkalian Matriks menggunakan Fungsi Gaussel Pada Matlab
Computer Problem 4.4 halaman 131 No. 1
Solusi :
a. MATLAB Script
function [oL,oU,oY,oX] = lufact(A,b)
% Solve the system Ax=b using the LU decomposition.
n=length(b);
y=zeros(n,1);
x=zeros(n,1);
fprintf('\n');
for i=1:n
U(i,i)=1;
end
L(1,1)=A(1,1)/U(1,1);
for j=2:n
L(j,1)=A(j,1)/U(1,1);
U(1,j)=A(1,j)/L(1,1);
end
for i=2:n-1
S=0;
for k=1:i-1
S=S+U(k,i)*L(i,k);
end
L(i,i)=(A(i,i)-S)/U(i,i);
for j=i+1:n
S=0;
for k=1:i-1
S=S+U(k,i)*L(j,k);
end
L(j,i)=(A(j,i)-S)/U(i,i);
S=0;
for k=1:i-1
S=S+U(k,j)*L(i,k);
end
U(i,j)=(A(i,j)-S)/L(i,i);
end
end
S=0;
for k=1:n-1
S=S+U(k,n)*L(n,k);
end
L(n,n)=(A(n,n)-S)/U(n,n);
% Perform the forward substitution.
y(1)=b(1)/L(1,1);
for i=2:n
S=b(i);
for j=1:i-1
S=S-L(i,j)*y(j);
end
y(i)=S/L(i,i);
end
% Perform the back substitution.
x(n)=y(n)/U(n,n);
for i=n-1:-1:1
S=y(i);
for j=i+1:n
S=S-U(i,j)*x(j);
end
x(i)=S/U(i,i);
end
oL=L;
oU=U;
oY=y;
oX=x;
end
b. Penjelasan
LU decomposition merupakan salah satu pendekatan selain gauss dalam penyelesaian
permasalahan persamaan linear. LU decomposition memanfaatkan matrix segitiga bawah
(L) dengan matrik segitiga atas (U), dalam pencarian solusi atas permasalahan persamaan
linear.
Contoh :
1 2 4 x1 3
[
Tentukan solusi x1, x2, dan x3 pada soal berikut 3 8 14 x 2
2 6 13 x 3 ][ ] [ ]
= 13 , dengan metode
4
LU’s decomposition.
Jawab :
1 2 4 1 0 0 U 11 U 12 U 13
[ ] L
A = 3 8 14 = LU dimana L= 21
2 6 13
1
[0
L31 L32 1 ] [ ]
dan U= 0 U 22 U 23
0 0 U 33
U 11 U 12 U 13 1 2 4
[
LU= L21 U 11 L21 U 12 +U 22
][ ]
L21 U 13 +U 23
L31 U 11 L31 U 12 + L32 U 22 L31 U 13+ L32 U 23+ U 33
= 3 8 14
2 6 13
[ ] [ ]
L= 3 1 0 , U = 0 2 2
2 1 1 0 0 3
Selanjutnya mencari solusi Y atas persamaan berikut LY =B.
1 0 0 y1 3
[ ][ ] [ ]
3 1 0 y 2 = 13
2 1 1 y3 4
Dengan substitusi langsung pada persamaan diatas maka diperoleh
y 1=3 , y 2=4 , dan y 3=−6
Langkah terakhir adalah menyelesaikan persamaan berikut UX =Y
1 2 4 x1 3
[ ][ ] [ ]
0 2 2 x2 = 4
0 0 3 x 3 −6
Dengan substitusi langsung pada persamaan diatas maka diperoleh solusi X sebagai
berikut.
3
X= 4
−2 []
c. Hasil/Tampilan
- Tampilan 1
Gambar 3.1 . Tampilan Sistem Persamaan Linier menggunakan Fungsi Lufact
- Tampilan 2
Gambar 3.2. Tampilan Sistem Persamaan Linier menggunakan Fungsi Lufact menggunakan LU
Decomposition
Computer Problem 4.4 halaman 131 No. 2a
The following 8 by 8 tridiagonal system of equations arise in the solution of partial differential equations
using the finite difference method
x1
[−2⋱ 1 ¿ ¿ 1 −2 1 ¿−2
⋱ ⋱ ¿ 1 −2 ¿ ¿
¿ ] []
x2
⋮ = b.
x7
x8
Use the MATLAB function lufact to solve the system for the b [1 1 ... 1] vectors.
Solusi :
a. MATLAB Script
oL=L;
oU=U;
oY=y;
oX=x;
end
b. Penjelasan
Penyelesaian persoalan diatas dapat dilakukan dengan fungsi lufact. Adapun cara penyelesaian
permasalahan tersebut sama seperti contoh pada soal sebelumnya. Dengan metode LU decomposition
x1
¿ ¿ ¿ 1 −1.5 ¿ ¿ ¿
L= [−21 ¿
−1.3333 ¿ ¿ ¿ 1 −1.25 ¿ ¿ ¿
−1.2 ¿ ¿ ¿ ¿ 1 ¿−1.1667 ¿ ¿ ¿ 1 ¿−1.1429 ¿ ¿ 1 ¿−1.125 ¿ ]
U= [ 11 −0.5 ¿ ¿ ¿
−0.6667 ¿ ¿ ¿
−0.75 ¿ ¿ ¿ ¿ ¿ 1 ¿−0.8 ¿ ¿ ¿ ¿1 ¿−0.8333 ¿ ¿ ¿ 1 ¿−0.8571 ¿ ¿ 1 ¿−0.8755 ¿ 1 ¿ ]
−0.5
[]
−1
−1.5
Y = −2
−2.5
−3
−3.5
−4
−4
[]
−7
−9
−10
X=
−10
−9
−7
−4
c. Hasil/Tampilan
b. Penjelasan
Untuk kasus data berukuran 15x15 dengan elemen-elemen dalam matrik merupakan bilangan
random yang dihasilkan dari fungsi rand() di MATLAB. Fungsi rand() dalam MATLAB
menghasilkan nilai acak berkisar antara 0-1. Sedangkan pada matrik b berukuran 15x1 berisikan
nilai dari 0.1 sampai dengan 0.15. Dalam pencarian solusi atas permasalahan tersebut, maka
digunakan fungsi lufactRand.m yang merupakan custom function dari lufact.m, perbedaannya
hanyalah lufactRand.m secara otomatis me-generate matrik input berukuran 15x15 secara
random. selanjutnya setelah diperoleh solusi dalam bentuk matrik X, maka dapat dihitung akurasi
dari solusi yang diperoleh dengan persamaan A X −b=O, yang mana O merupkan matrik
dengan elemen 0, X merupkan solusi yang diperoleh, dan A adalah matrik dengan elemen
random berukuran 15x15. Apabila nilai A X −b semakin dekat dengan matrik O maka
mengindikasikan bahwa solusi yang dihasilkan semakin dekat dengan solusi eksak.
c. Hasil/Tampilan
- Tampilan 1
- Tampilan 2
- Tampilan 3
Gambar 5.3 Tampilan Sistem Perkalian Matriks menggunakan Fungsi Lufactrand
- Tampilan 4
- Tampilan 5
Gambar 5.5 Tampilan Sistem Perkalian Matriks menggunakan Fungsi Lufactrand