Aplikasi Penyelesaian Persamaan Linier Simultan dengan C++ (Metode Eliminasi Gauss Jordan)
Metode ini merupakan pengembangan metode eliminasi Gauss, hanya saja augmented matrik, pada sebelah kiri diubah menjadi matrik diagonal sebagai berikut:
Penyelesaian dari persamaan linier simultan diatas adalah nilai d1,d2,d3,…,dn dan atau:
Teknik yang digunakan dalam metode eliminasi Gauss-Jordan ini sama seperti metode eliminasi Gauss yaitu menggunakan OBE (Operasi Baris Elementer). Hanya perhitungan penyelesaian secara langsung diperoleh dari nilai pada kolom terakhir dari setiap baris.
Algoritma Metode Eliminasi Gauss-Jordan adalah sebagai berikut:
- Masukkan matrik A, dan vektor B beserta ukurannya n
- Buat augmented matrik [A|B] namakan dengan A
- Untuk baris ke i dimana i=1 s/d n
- Perhatikan apakah nilai ai,i sama dengan nol :
Bila ya :
pertukarkan baris ke i dan baris ke i+k≤n, dimana ai+k,i tidak sama dengan
nol, bila tidak ada berarti perhitungan tidak bisa dilanjutkan dan proses
dihentikan dengan tanpa penyelesaian.Bila tidak : lanjutkan
- Jadikan nilai diagonalnya menjadi satu, dengan cara untuk setiap kolom k
dimana k=1 s/d n+1, hitung
- Untuk baris ke j, dimana j = i+1 s/d n
Lakukan operasi baris elementer: untuk kolom k dimana k=1 s/d n, Hitung
- Penyelesaian, untuk i = n s/d 1 (bergerak dari baris ke n sampai baris pertama)
Berikut ini salah satu program menggunakan bahasa pascal untuk menyelesaikan persamaan Linear Simultan dengan metode Gauss Jordan :
uses crt;Const
Max = 25;
Type
Matrik = record
Row, col : byte;
Element : array [1..max, 1..max] of real;
End;
Vektor = record
Row : byte;
Element : array [1..max] of real;
End;
Var
x, b : vektor;
A : matrik;
n : integer;
c : real;
Error : boolean;
Procedure masukkandata;
Var i,j : byte;
Begin
Writeln(‘Penyelesaian Persamaan Linier dengan Metode Gauss Jordan’);
Write (‘Jumlah persamaan :’);
Readln (n);
A.row := n;
A.col := n ;
b.row := n;
for i := 1 to n do
begin
writeln (‘Persamaan ke ‘,i );
for j := 1 to n do
begin
write (‘X[‘,i,’,’,j,’] = ‘);
readln (A.element[i,j]);
end;
write(‘Y[‘,i,’] = ‘); readln(A.element[i,n+1]);
writeln;
end;
end;
procedure eliminasigauss;
var I,j,k : integer;
temp, S : real;
Begin
Error := false;
For i := 1 to n do
Begin
If (A.element[i,i] = 0 ) then
Begin
write(A.element[i,i]) ;
Error := true;
Exit;
End;
temp := A.element[i,i];
for k := 1 to n+1 do
begin
A.element[i,k] := A.element[i,k] / temp;
end;
For j := 1 to n do
begin
if(j<>i) then
begin
c := A.element[j,i];
for k := 1 to n+1 do
begin
A.element[j,k] := A.element [j,k] – (c * A.element[i,k]);
end;
end;
end;
end;
x.row := n;
for i := n downto 1 do
begin
if (A.element [i,i] = 0.0 ) then
Begin
Error := true;
Exit;
End;
x.element[i] := A.element[i,n+1];
end;
end;
Procedure tulishasil;
Var i : byte;
Begin
If (error) then
Begin
Writeln (‘Persamaan simultan linear tidak dapat diselesaikan’);
End
Else
Begin
Writeln;
Writeln (‘Penyelesaian persamaan linear dengan Gauss Jordan : ‘);
For i := 1 to x.row do
Writeln(‘X’,i,’ = ‘,x.element[i]:6:2);
End;
End;
Begin
clrscr;
Masukkandata;
Eliminasigauss;
Tulishasil;
readln;
End. |
|
Comments on: "Aplikasi Penyelesaian Persamaan Linier Simultan dengan C++ (Metode Eliminasi Gauss Jordan)" (19)
keren..
makasi banyak atas postingannya..
ok…sama-sama…
semoga bermanfaat…^_^
hai..boleh kasi masukan buat metode gauss aja gak??
thanks yah..
haduuhhh… maaf yah blom sempet liat lagi..
nice info 🙂
klo untuk bahasa c++ ato java ada gak ya??????
Aku blom ada tuhh… Silahkan di konversi sendiri yah… 🙂 Tapi ya kira2 begitulah alurnya….
Ntar kalo sempet aku coba konversiin ke c++ / java dech… 🙂
Thnks
Contoh soalnya ga’ ada jadi kurang ngerti saya……!!!!!!!!!!!!!!!!!!!
Hehehe… maaf yaaa…. saya tidak sertakan contoh soalnya karena ini hanya untuk pembuatan programnya saja :).. kalo kamu ada contoh soalnya langsung saja di aplikasiin pada aplikasi ini… thanks for coming 🙂
maaf.. knpa saya sudah tulis dengan saksama script yang kak tulis di atas tapi kok ada yang masih error juga yah..??? mohon pencerahannya
coba di print scr errornya dan copy coding yg sudah diketik, kemudian kirim email aja ke caryn.imyut[at]gmail[dot]com 🙂
thanks yah….! atas informasinya,salam kenal ….!
ok.. u’re welcome.. semoga dapat membantu.. 🙂
thanks ya,.,postingannya membantu bgt 😉
alhamdulillah… trima kasih… 😉
with c++
Yeapp.. I’ll fixing then… thank u 🙂
kira2 metode matrix ini bisa digunakan atau diapplikasikan untuk apa ya???
Trimakasih admin, sangat membantu. Tetapi saya sangat berharap admin mau kiranya menuliskan juga contoh soalnya.
Saya juga berharap fast respons dr admin
@Ardiansah : Mohon maaf yaaa..postingan saya tersebut untuk memenuhi tugas saya saat kuliah dan untuk saat ini saya blm ada maksud untuk memperdalamnya .. Untuk contoh lebih detail sudah banyak diinternet bahkan ada video juga seperti di https://youtu.be/Ey62H_oaqoE
Terima Kasih sudah berkunjung… ^^