Professional Documents
Culture Documents
https://www.emathhelp.net/en/calculators/linear-algebra/reduced-row-echelon-form-rref-
calculator/?i=%5B%5B1%2C-2%2C1%2C0%5D%2C%5B0%2C2%2C-
8%2C8%5D%2C%5B5%2C0%2C-
5%2C10%5D%5D&reduced=on
Grup 1
Anggota:
1. Muhammad Gilbran Alfarizi (G1C022060)
int lead = 0;
cout << "\nLangkah-langkah reduksi matriks ke bentuk RREF:" << endl;
printMatrix(matrix);
int i = r;
while (matrix[i][lead] == 0) {
++i;
if (barisCount == i)
{ i = r;
++lead;
if (colCount == lead)
{ break;
}
}
}
if (matrix[i][lead] == 0) {
cout << "Langkah " << r + 1 << ": Tidak ada elemen non-nol di kolom leading, penukaran baris "
<< r + 1 << " dengan baris " << i + 1 << endl;
swap(matrix[i], matrix[r]);
printMatrix(matrix);
}
cout << "Langkah " << r + 1 << ": Bagilah baris " << r + 1 << " oleh pembagi " << val << endl;
printMatrix(matrix);
cout << "Langkah " << r + 1 << ": Eliminasi elemen pada kolom yang sama di baris lain" << endl;
printMatrix(matrix);
++lead;
}
}
int main() {
int baris, cols;
}
}
reduceToRREF(matrix);
return 0;
}
Kelompok 2 Aljabar
https://idealcalculator.com/rref-calculator-with-steps-reduced-row-echelon-form-
calculator/#google_vignette
Anggota :
1. M.Hengki Prastiyo (G1C022028)
2. Deki Anrian Talo (G1C022022)
3. Renaldi Astaman (G1C022034)
4. Indra Silaban (G1C022082)
#include <iostream>
#include <vector>
cout << "Bagi Baris " << r + 1 << " dengan " << divisor << ":" << endl;
displayMatrix(matrix); cout
<< endl;
// Lakukan operasi baris untuk membuat elemen lain di kolom yang sama menjadi 0 for
(int i = 0; i < rows; ++i) { if (i != r) {
int lead = 0;
int i = r;
while (matrix[i][lead] == 0) {
i++;
if (i == rowCount) {
i = r;
lead++;
if (colCount == lead)
return;
}
}
// Eliminasi Gauss untuk membuat semua elemen di bawah leading entry menjadi 0
for (int i = 0; i < rowCount; i++) {
if (i != r) {
double factor = matrix[i][lead];
for (int j = 0; j < colCount; j++) {
matrix[i][j] -= factor * matrix[r][j];
}
steps.push_back("Step " + to_string(r + 1) + ": Subtract " + to_string(factor) + " times
row " + to_string(r + 1) + " from row " + to_string(i + 1));
cout << "After Subtract:" << endl;
printMatrix(matrix);
}
}
lead++;
}
}
int main() {
// Inisialisasi matriks 3x4
vector<vector<double>> matrix(3, vector<double>(4, 0));
vector<string> steps;
rref(matrix, steps);
return 0;
}
Dengan soal
Hasil web
Hasil codingan
Kelompok 4 :
1. Christeas Budianto Tambunan (G1C022046)
2. Ranes Dianu Berta (G1C022062)
3. Benedrick Jovanka Tarigan (G1C022012)
4. Rangga Rezky Aran Puka (G1C022020)
Link website :
https://mathcracker.com/rref-calculator
Codingan:
#include <iostream>
#include <vector>
int i = r;
while (matrix[i][lead] == 0) {
i++;
if (rows == i) {
i = r;
lead++;
if (cols == lead) {
break;
}
}
}
printMatrix(matrix);
lead++;
}
}
int main() {
int rows, cols;
cout << "Program By: Kelompok 4 :)" << endl;
cout << "Masukkan jumlah baris: ";
cin >> rows;
rowEchelonForm(matrix);
return 0;
}
Soal :
Hasil Pemrograman matrix 3x4 :
Hasil dari website :
PROGRAM MATRIKS METODE ELIMINASI GAUSS UNTUK MENEMUKAN SOLUSI SISTEM
PERSAMAAN LINIER DENGAN DUA VARIABEL (X,Y,DAN Z)
GRUB 5
Anggota:
1. Wahyu Wardana Sitepu (G1C022038)
2. Muhammad Fachrul Rozi (G1C022074)
3. Ardi Wasianto (G1C020030)
4. Arya Duta Ghandy (G1C021040)
ALAMAT WEB
https://www.omnicalculator.com/math/row-echelon-form
codingan matriks
#include <iostream>
#include <vector>
int maxRowIndex = i;
for (int k = i + 1; k < rows; ++k) {
if (abs(augmentedMatrix[k][i]) > abs(augmentedMatrix[maxRowIndex][i])) {
maxRowIndex = k;
}
}
if (maxRowIndex != i) {
cout << "Langkah " << i + 1 << ": Tukar baris " << i + 1 << " dan baris " << maxRowIndex
+ 1 << endl;
swap(augmentedMatrix[i], augmentedMatrix[maxRowIndex]);
printMatrix(augmentedMatrix);
cout << "--------------------------" << endl;
}
double pivot = augmentedMatrix[i][i];
if (pivot != 0) {
cout << "Langkah " << i + 1 << ": Bagilah baris " << i + 1 << " dari " << pivot << endl;
for (int j = 0; j < cols; ++j) {
augmentedMatrix[i][j] /= pivot;
}
printMatrix(augmentedMatrix);
cout << "--------------------------" << endl;
int main() {
vector<vector<double>> augmentedMatrix = {
{1, -2, 1, 0},
{0, 2, -8, 8},
{5, 0, -5, 10}
};
gaussianElimination(augmentedMatrix);
return 0;
}
Anggota :
PROGRAM:
#include <iostream>
#include <vector>
if (nonZeroRow != -1) {
// Tukar baris dengan baris yang memiliki elemen pertama tidak nol
swap(matrix[i], matrix[nonZeroRow]);
cout << "Elemen di atas dan di bawah elemen pertama diubah menjadi 0:"
<< endl;
displayMatrix(matrix);
}
}
}
int main() {
// Meminta pengguna memasukkan matriks secara manual
vector<vector<double>> matrix(3, vector<double>(4, 0.0));
cout << "Masukkan elemen matriks 3x4 secara manual:" << endl;
for (int i = 0; i < 3; i++) {
for (int j = 0; j < 4; j++) {
cout << "Masukkan elemen baris ke-" << i + 1 << " kolom ke-" << j + 1
<< ": ";
cin >> matrix[i][j];
}
}
reducedRowEchelonForm(matrix);
cout << "Matriks setelah Reduksi Baris Tereduksi (RREF):" << endl;
displayMatrix(matrix);
return 0;
}
DENGAN SOAL:
#include <iostream>
#include <vector>
void printMatrix(const std::vector<std::vector<double>>& matrix) {
for (const auto& row : matrix) {
for (double value : row) {
std::cout << value << " ";
}
std::cout << std::endl;
}
std::cout << std::endl;
}
void rowOperation(std::vector<std::vector<double>>& matrix, int i, int j, double k) {
int n = matrix[0].size(); // Jumlah kolom
for (int idx = 0; idx < n; ++idx) {
matrix[j][idx] -= k * matrix[i][idx];
}
}
void reduceToRREF(std::vector<std::vector<double>>& matrix) {
int lead = 0;
int rowCount = matrix.size();
int colCount = matrix[0].size();
for (int r = 0; r < rowCount; r++) {
if (colCount <= lead) {
break;
}
int i = r;
while (matrix[i][lead] == 0) {
i++;
if (rowCount == i) {
i = r;
lead++;
if (colCount == lead) {
return;
}
}
}
std::swap(matrix[i], matrix[r]);
if (matrix[r][lead] != 0) {
double val = matrix[r][lead];
std::cout << "Menggunakan " << val << " sebagai faktor pembagi untuk baris " << r+1
<< std::endl;
for (int j = 0; j < colCount; j++) {
matrix[r][j] /= val;
}
std::cout << "Baris " << r+1 << " dibagi dengan " << val << " menjadi:" << std::endl;
printMatrix(matrix);
}
for (i = 0; i < rowCount; i++) {
if (i != r) {
double val = matrix[i][lead];
std::cout << "Menggunakan " << val << " sebagai faktor pengurang untuk menghapus
entri di baris " << i+1 << std::endl;
for (int j = 0; j < colCount; j++) {
matrix[i][j] -= val * matrix[r][j];
}
std::cout << "Baris " << r+1 << " dikalikan dengan " << val << " dan dikurangkan dari
baris " << i+1 << " menjadi:" << std::endl;
printMatrix(matrix);
}
}
lead++;
}
}
int main() {
////ubah angka dibawah untuk matriks yang lain
std::vector<std::vector<double>> matrix = {{1, -2, 1, 0}, {0, 2, -8, 8}, {5, 0, -5, 10}};
reduceToRREF(matrix);
#include <iostream>
#include <vector>
int i = r;
while (matrix[i][lead] == 0) {
++i;
if (i == rows) {
i = r;
++lead;
if (lead == cols)
return;
}
}
// Tukar baris i dan r
swap(matrix[i], matrix[r]);
cout << "Langkah " << r + 1 << ":" << endl;
displayMatrix(matrix);
cout << endl;
// Membuat elemen diagonal menjadi 1
double divisor = matrix[r][lead];
for (int j = 0; j < cols; ++j)
matrix[r][j] /= divisor;
cout << "Bagi Baris " << r + 1 << " dengan " << divisor << ":" << endl;
displayMatrix(matrix);
cout << endl;
// Lakukan operasi baris untuk membuat elemen lain di kolom yang sama menjadi 0
for (int i = 0; i < rows; ++i) {
if (i != r) {
double factor = matrix[i][lead];
for (int j = 0; j < cols; ++j)
matrix[i][j] -= factor * matrix[r][j];
cout << "Baris " << i + 1 << " - (" << factor << ") * Baris " << r + 1 << ":" << endl;
displayMatrix(matrix);
cout << endl;
}
}
++lead;
}
}
int main() {
int rows, cols;
return 0;
}
soal
Hasil Web
Hasil Codingan
Kelompok 9 Bentuk Eselon Baris Tereduksi Matriks
Grup 9
#include <iostream>
#include <vector>
int main() {
int rows, cols;
makeRowEchelonForm(matrix);
cout << "Matriks dalam Bentuk Echelon Baris Tereduksi:" << endl;
printMatrix(matrix);
return 0;
}
DENGAN SOAL
HASIL DARI WEB
HASIL DARI CODINGAN
Kelompok 10
1.Nanda (G1C021038)
2.Rahmat Hadi Ismanto (G1C021062)
3.Bill Clinton Manullang (G1C021070)
Website: Grup 10
lead++;
cout << "------------------------------------" << endl;
}
}
int main() {
int rows, cols;
// Meminta input dari pengguna untuk jumlah baris dan kolom
cout << "Masukkan jumlah baris matriks: ";
cin >> rows;
cout << "Masukkan jumlah kolom matriks: ";
cin >> cols;
// Meminta input elemen matriks dari pengguna
vector<vector<double>> matrix(rows, vector<double>(cols));
cout << "Masukkan elemen-elemen matriks:" << endl;
for (int i = 0; i < rows; i++) {
for (int j = 0; j < cols; j++) {
cout << "Masukkan elemen baris " << i + 1 << " kolom " << j + 1 << ": ";
cin >> matrix[i][j];
}
}
// Tampilkan matriks awal
cout << "Matriks awal:" << endl;
printMatrix(matrix);
// Ubah matriks menjadi bentuk eselon baris tereduksi dan tampilkan prosesnya
reducedRowEchelonForm(matrix);
// Tampilkan matriks hasil
cout << "Matriks eselon baris tereduksi:" << endl;
printMatrix(matrix);
return 0;
}
Hasil Dari codingan C++
Hasil dari web : Transforming Matriks to Reduced Row Echelon Form
https://atozmath.com/MatrixEv.aspx?q=reduce