Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Guass elimination using c++

  1. Apr 15, 2006 #1
    i m having serious problem regarding this program...i m not asking u 2 make it for me....just help me with logic cuz i cant get gist of it....plzzz i need help...i ve working on it like 3 hours nd its like my mind has gone blank:(
  2. jcsd
  3. Apr 15, 2006 #2
    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++.
  4. Apr 15, 2006 #3


    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    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!
  5. Apr 15, 2006 #4


    User Avatar
    Science Advisor

    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: Apr 15, 2006
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook