The following program solves a system of linear equations:
A X = B
Where A is the matrix of coefficients, and B and X are the coefficient
and solution vectors.
Click here to download a ZIP file
containing the project files for this program.
The program is menu driven. The menu prompts which is:
Solve a system of linear equations ================================== 0) Quit 1) New system 2) Edit matrix A 3) Edit vector B 4) View coefficients 7) Solve Select choice by number:Asks you to enter one of the following choices:
2. Edit an element in the matrix A. This choice first prompts you to enter the row and column indices for the element in A. The program then displays the current value you are editing and prompts you to enter a new value.
3. Edit an element in the vector B. This choice first prompts you to enter index for the element in B. The program then displays the current value you are editing and prompts you to enter a new value.
4. View the coefficients. The program displays the elements of matrix A and vector B.
5. Solve the set of linear equations. The program displays the elements of solution vector X.
You select from the above menus by entering the menu number.
Here is an example to solve the following equations:
X1 | + | X2 | + | X3 | = | 6 |
X1 | + | 1.1 X2 | + | X3 | = | 6.2 |
X1 | + | X2 | + | 1.1 X3 | = | 6.3 |
Here is the first screen that shows the input for the above example:
The second screen shows the viewing of the coefficients, followed by solving the linear equations:
Here is the listing of the main module. The program also uses the matrix class library (MatrixLib.vb) which you can download from the VB.Net: Master Page:
Module Module1 Sub Main() Dim N As Integer Dim X(1), B(1), A(1, 1) As Double Dim I, J, nChoice As Integer Dim sInput As String Do Console.WriteLine(" Solve a system of linear equations") Console.WriteLine(" ==================================") Console.WriteLine("0) Quit") Console.WriteLine("1) New system") Console.WriteLine("2) Edit matrix A") Console.WriteLine("3) Edit vector B") Console.WriteLine("4) View coefficients") Console.WriteLine("5) Solve") Console.Write("Select choice bu number: ") sInput = Console.ReadLine If sInput.Length > 0 Then nChoice = Integer.Parse(sInput) Else nChoice = -1 End If Console.WriteLine() Select Case nChoice Case 0 Console.WriteLine("Bye!") Case 1 Console.Write("Enter number of equations? ") N = Integer.Parse(Console.ReadLine) ReDim X(N), B(N), A(N, N) For I = 0 To N - 1 For J = 0 To N - 1 Console.Write("Enter A({0},{1})? ", I + 1, J + 1) A(I, J) = Double.Parse(Console.ReadLine) Next Console.Write("Enter B({0})? ", I + 1) B(I) = Double.Parse(Console.ReadLine) Next Case 2 Console.Write("Enter value of index I? ") I = Integer.Parse(Console.ReadLine) - 1 Console.Write("Enter value of index J? ") J = Integer.Parse(Console.ReadLine) - 1 Console.Write("Enter new value of A({0},{1})? ({2}): ", I + 1, J + 1, A(I, J)) sInput = Console.ReadLine If sInput.Length > 0 Then A(I, J) = Double.Parse(sInput) End If Case 3 Console.Write("Enter value of index I? ") I = Integer.Parse(Console.ReadLine) - 1 Console.Write("Enter new value of B({0})? ({1}): ", I + 1, B(I)) sInput = Console.ReadLine If sInput.Length > 0 Then A(I, J) = Double.Parse(sInput) End If Case 4 For I = 0 To N - 1 For J = 0 To N - 1 Console.WriteLine("A({0},{1}) = {2} ", I + 1, J + 1, A(I, J)) Next Console.WriteLine("B({0}) = {1} ", I + 1, B(I)) Next Case 5 For I = 0 To N - 1 X(I) = B(I) Next MatrixLibVb.SolveLU(A, X, N) Console.WriteLine("Solution is:") For I = 0 To N - 1 Console.WriteLine("X({0}) = {1}", I + 1, X(I)) Next End Select If nChoice > 0 Then Console.WriteLine() Console.Write("Press Enter to resume") Console.ReadLine() Console.WriteLine() End If Loop Until nChoice = 0 End Sub End Module
Copyright (c) Namir Shammas. All rights reserved.