-
Program Input:
- Number of equations.
- Coefficients for every equation.
-
Program Output:
- Solution with steps.
- Final system solution.
- Install Python on your machine from this link: https://www.python.org/
- Using Visual Studio Code, Install Python from Extensions.
- Install numpy library by CMD using the following command:
pip install numpy- Now, open the code folder in Visual Studio Code, and Run it using Ctrl+F5.
using System; class LinearSystemSolver { static void Main(string[] args) { Console.WriteLine("Linear System Solver - Task Assignment"); Console.WriteLine("Second Level - First Semester: 2023-2024\n"); Console.WriteLine("Name: Amr Bedir Taher"); Console.WriteLine("ID: 1000264365"); Console.WriteLine("Group: 2, Section: 12"); Console.WriteLine("\n____________________\n"); Console.Write("Enter the number of equations: "); int n = int.Parse(Console.ReadLine()); // Create a matrix to store the coefficients and constants of the linear system double[,] matrix = new double[n, n + 1]; // Input coefficients and constants for each equation for (int i = 0; i < n; i++) { Console.WriteLine($"Enter coefficients for equation {i + 1}:"); for (int j = 0; j < n; j++) { Console.Write($"a{i + 1}{j + 1}: "); matrix[i, j] = double.Parse(Console.ReadLine()); } Console.Write($"Enter the constant (b{i + 1}): "); matrix[i, n] = double.Parse(Console.ReadLine()); } // Perform Gaussian elimination to convert the matrix into upper triangular form for (int k = 0; k < n; k++) { for (int i = k + 1; i < n; i++) { double factor = matrix[i, k] / matrix[k, k]; for (int j = k; j <= n; j++) { matrix[i, j] -= factor * matrix[k, j]; } } } // Backward substitution to find the solution with row swapping double[] solution = new double[n]; for (int i = n - 1; i >= 0; i--) { // Check if the coefficient is zero and swap rows if needed if (matrix[i, i] == 0) { for (int m = i - 1; m >= 0; m--) { if (matrix[m, i] != 0) { // Swap rows i and m for (int j = 0; j <= n; j++) { double temp = matrix[i, j]; matrix[i, j] = matrix[m, j]; matrix[m, j] = temp; } break; } } } // Continue with the backward substitution solution[i] = matrix[i, n]; for (int j = i + 1; j < n; j++) { solution[i] -= matrix[i, j] * solution[j]; } solution[i] /= matrix[i, i]; } // Display the solution with steps Console.WriteLine("\n____________________\n"); Console.WriteLine("Solution with Steps:"); for (int i = 0; i < n; i++) { Console.Write($"x{i + 1} = ({matrix[i, n] / matrix[i, i]:0.00})"); for (int j = 0; j < n; j++) { if (j != i) { Console.Write($" - ({matrix[i, j]:0.00} * x{j + 1})"); } } Console.WriteLine(); } // Display the final solution Console.WriteLine("\n____________________\n"); Console.WriteLine("Final Solution:"); for (int i = 0; i < n; i++) { Console.WriteLine($"x{i + 1} = {solution[i]:0.00}"); } } }#include <iostream> #include <vector> using namespace std; vector<double> gaussian_elimination(vector<vector<double>>& matrix) { int n = matrix.size(); // Forward elimination to convert the matrix into upper triangular form for (int k = 0; k < n; k++) { for (int i = k + 1; i < n; i++) { double factor = matrix[i][k] / matrix[k][k]; for (int j = k; j <= n; j++) { matrix[i][j] -= factor * matrix[k][j]; } } } // Backward substitution to find the solution with row swapping vector<double> solution(n, 0.0); for (int i = n - 1; i >= 0; i--) { // Check if the coefficient is zero and swap rows if needed if (matrix[i][i] == 0) { for (int m = i - 1; m >= 0; m--) { if (matrix[m][i] != 0) { // Swap rows i and m vector<double> temp = matrix[i]; matrix[i] = matrix[m]; matrix[m] = temp; break; } } } // Continue with the backward substitution solution[i] = matrix[i][n]; for (int j = i + 1; j < n; j++) { solution[i] -= matrix[i][j] * solution[j]; } solution[i] /= matrix[i][i]; } return solution; } int main() { cout << "Linear System Solver - Task Assignment" << endl; cout << "Second Level - First Semester: 2023-2024\n" << endl; cout << "Name: Amr Bedir Taher" << endl; cout << "ID: 1000264365" << endl; cout << "Group: 2, Section: 12" << endl; cout << "\n____________________\n" << endl; cout << "Enter the number of equations: "; int n; cin >> n; // Create a matrix to store the coefficients and constants of the linear system vector<vector<double>> matrix(n, vector<double>(n + 1, 0.0)); // Input coefficients and constants for each equation for (int i = 0; i < n; i++) { cout << "Enter coefficients for equation " << i + 1 << ":\n"; for (int j = 0; j < n; j++) { cout << "a" << i + 1 << j + 1 << ": "; cin >> matrix[i][j]; } cout << "Enter the constant (b" << i + 1 << "): "; cin >> matrix[i][n]; } // Perform Gaussian elimination to convert the matrix into upper triangular form vector<double> solution = gaussian_elimination(matrix); // Display the solution with steps cout << "\n____________________\n" << endl; cout << "Solution with Steps:" << endl; for (int i = 0; i < n; i++) { cout << "x" << i + 1 << " = (" << matrix[i][n] / matrix[i][i] << ")"; for (int j = 0; j < n; j++) { if (j != i) { cout << " - (" << matrix[i][j] << " * x" << j + 1 << ")"; } } cout << endl; } // Display the final solution cout << "\n____________________\n" << endl; cout << "Final Solution:" << endl; for (int i = 0; i < n; i++) { cout << "x" << i + 1 << " = " << solution[i] << endl; } return 0; }def gaussian_elimination(matrix): n = len(matrix) # Forward elimination to convert the matrix into upper triangular form for k in range(n): for i in range(k + 1, n): factor = matrix[i][k] / matrix[k][k] for j in range(k, n + 1): matrix[i][j] -= factor * matrix[k][j] # Backward substitution to find the solution with row swapping solution = [0] * n for i in range(n - 1, -1, -1): # Check if the coefficient is zero and swap rows if needed if matrix[i][i] == 0: for m in range(i - 1, -1, -1): if matrix[m][i] != 0: # Swap rows i and m matrix[i], matrix[m] = matrix[m], matrix[i] break # Continue with the backward substitution solution[i] = matrix[i][n] for j in range(i + 1, n): solution[i] -= matrix[i][j] * solution[j] solution[i] /= matrix[i][i] return solution def main(): print("Linear System Solver - Task Assignment") print("Second Level - First Semester: 2023-2024\n") print("Name: Amr Bedir Taher") print("ID: 1000264365") print("Group: 2, Section: 12") print("\n____________________\n") n = int(input("Enter the number of equations: ")) # Create a matrix to store the coefficients and constants of the linear system matrix = [[0] * (n + 1) for _ in range(n)] # Input coefficients and constants for each equation for i in range(n): print(f"Enter coefficients for equation {i + 1}:") for j in range(n): matrix[i][j] = float(input(f"a{i + 1}{j + 1}: ")) matrix[i][n] = float(input(f"Enter the constant (b{i + 1}): ")) # Perform Gaussian elimination to convert the matrix into upper triangular form matrix = gaussian_elimination(matrix) # Display the solution with steps print("\n____________________\n") print("Solution with Steps:") for i in range(n): print(f"x{i + 1} = ({matrix[i][n] / matrix[i][i]:0.2f})", end="") for j in range(n): if j != i: print(f" - ({matrix[i][j]:0.2f} * x{j + 1})", end="") print() # Display the final solution print("\n____________________\n") print("Final Solution:") for i in range(n): print(f"x{i + 1} = {matrix[i][n]:0.2f}") if __name__ == "__main__": main()-
A linear system of equations is a mathematical representation of multiple linear equations with multiple variables that are interconnected. These systems are used to model and solve a wide range of real-world problems across various fields, including physics, engineering, economics, and more. Here's an explanation of key concepts related to linear systems:
-
Linear Equation: A linear equation is a mathematical equation in which each term is either a constant or the product of a constant and a single variable raised to the power of 1 (i.e., a linear term). Linear equations can be written in the form ax + by = c, where a, b, and c are constants, and x and y are variables.
-
Linear System of Equations: A linear system consists of multiple linear equations. For example, a 2D linear system involves two linear equations with two variables, and a 3D linear system involves three linear equations with three variables.
-
Variables: Variables are the unknown quantities you aim to solve for in the linear system. Commonly used variables are x, y, z, and so on. The goal is to find values for these variables that simultaneously satisfy all equations in the system.
-
Coefficients: Coefficients are the constants that multiply the variables in each equation. They determine the relative importance of each variable in the equation. For example, in the equation 2x + 3y = 10, 2 and 3 are coefficients.
-
Constants: Constants are the terms that do not involve variables. In the equation, 2x + 3y = 10, 10 is the constant term.
-
Solution: A solution to a linear system is a set of values for the variables that satisfy all the equations simultaneously. This means that when you substitute these values into each equation, the equations are true.
-
Underdetermined System: An underdetermined system has fewer equations than variables. These systems may have infinitely many solutions or no solution at all, depending on the specific equations.
-
Overdetermined System: An overdetermined system has more equations than variables. These systems often have no exact solution, but you can find the "best fit" solution that minimizes the error.
-
Gaussian Elimination: Gaussian elimination is a method for solving linear systems. It involves a sequence of operations on the equations to transform the system into an upper triangular form, making it easier to solve.
-
Matrix Representation: Linear systems are often represented using matrices. The coefficient matrix contains the coefficients of the variables, and the constant matrix contains the constants from each equation. By performing matrix operations, you can solve the system.
-
Unique Solution: A linear system has a unique solution when there is exactly one set of values for the variables that satisfy all equations. This occurs when the system is square (the number of equations equals the number of variables) and the determinant of the coefficient matrix is nonzero.
-
No Solution: A linear system has no solution when there are conflicting equations, and it's impossible to find values for the variables that satisfy all of them.
-
Infinite Solutions: A linear system has infinitely many solutions when it contains redundant equations, and these equations do not provide new information. In such cases, the system can be underdetermined, and any values that satisfy the non-redundant equations are valid solutions.
-
Linear systems are fundamental in mathematics and play a crucial role in scientific and engineering applications. They provide a structured way to model and analyze relationships between multiple variables and are solved using various methods, including Gaussian elimination, matrix algebra, and numerical techniques.
If you find this repository useful, please give it a star. Thanks!