C/C++ Implementing Gaussian Elimination in C++ with Scaled Partial Pivoting

  • Thread starter Thread starter Isma
  • Start date Start date
  • Tags Tags
    C++ Elimination
Click For Summary
The discussion centers around troubleshooting a programming challenge related to implementing Gaussian elimination in C++. The main advice emphasizes the importance of clearly defining the problem in plain English and creating pseudo-code to clarify the logic before coding. Key steps include implementing matrices using 2D arrays and developing basic matrix operations such as row swapping and row factoring. The conversation suggests using scaled partial pivoting to enhance the algorithm's efficiency by selecting the best pivot row based on the largest relative element. Additionally, it discusses the LU decomposition method for solving linear equations, where the matrix M is split into lower (L) and upper (U) triangular matrices. This approach allows for forward and backward substitution to solve for the variable vector X, offering improved performance when only the vector B changes.
Isma
Messages
27
Reaction score
0
i m having serious problem regarding this program...i m not asking u 2 make it for me...just help me with logic because i can't get gist of it...pleasezz i need help...i ve working on it like 3 hours nd its like my mind has gone blank:(
 
Technology news on Phys.org
write out in plain english what it is you need to do. then work out a psudo-code for it. after that it should be easy to get it down in C++.
 
But not just any old plain english -- it ought to be clear and precise. I like to say that a young kid should be able to follow your directions to get the right answer!
 
Will you use scaled partial pivoting? You should start by implementing your matrices and basic matrix operations. You can use 2D arrays for your matrices. You'll need basic functions like swapRows(R1, R2) and factorRow(PivotRow, RowToFactor, Multiplier) and printMatrix() for testing.
Then you should create a function that finds the best pivot row, if yu're using Scaled partial pivoting, then you select the row whose first non-zero element is the biggest relative to all the elements in its row.
Finally get down to Gaussian elimination, using the functions you have created.

What technique will you use for solving? Are you going to decompose the matrix into upper and lower triangular matrices?
If you want to solve for X in MX = B where M is a matrix and B is a vector, then you can split M into LU where L is lower triangular and U is upper triangular. Then you'd solve LY=B for Y with forward substitution and finally solve UX=Y for x, with backwards substitution. If you have to do things this way then it's a little more complicated, but you get better performance because your LU matrices are reusable whenever only B changes and M stays the same.
 
Last edited:
Learn If you want to write code for Python Machine learning, AI Statistics/data analysis Scientific research Web application servers Some microcontrollers JavaScript/Node JS/TypeScript Web sites Web application servers C# Games (Unity) Consumer applications (Windows) Business applications C++ Games (Unreal Engine) Operating systems, device drivers Microcontrollers/embedded systems Consumer applications (Linux) Some more tips: Do not learn C++ (or any other dialect of C) as a...

Similar threads

  • · Replies 2 ·
Replies
2
Views
2K
Replies
81
Views
7K
  • · Replies 2 ·
Replies
2
Views
4K
  • · Replies 4 ·
Replies
4
Views
5K
Replies
3
Views
3K
  • · Replies 1 ·
Replies
1
Views
4K
  • · Replies 4 ·
Replies
4
Views
27K
  • · Replies 14 ·
Replies
14
Views
6K
  • · Replies 21 ·
Replies
21
Views
4K
  • · Replies 29 ·
Replies
29
Views
10K