tags:

views:

488

answers:

6

My teacher asked me to create a program to solve something like:

2x plus 7y plus 2z = 76  
6x plus 1y plus 4z = 26  
8x plus 2y plus 18z = 1  

x = ?  
y = ?  
z = ?

Problem is, this is literally the first two days of class and he expects us to make something like this.

Any help?

+4  A: 

I would suggest that you come up with the algorithm in pseudo-code before you touch any C#.

At least if you have defined the steps that you need to perform, the task simply becomes one of learning the syntax of C# to accomplish the steps.

Looks like you'll need a math textbook ;)

womp
+6  A: 

If you know some maths, you can solve systems of equations using a matrix library (or roll your own).

Pontus Gagge
+1 for solving equations using a matrix.
RRUZ
+7  A: 

Since this is homework, I'll provide guidance, but not a complete answer...

My suggestion: Write this out on paper. How would you approach this on paper? Once you figure out the basic logic required, translating that into C# should be fairly straightforward.

You'll need to assign a variable for each portion of the equation (not just x/y/z, but also the coefficients), and just step through it in code using the same steps you do on paper.

Reed Copsey
+3  A: 

Have a go at solving this yourself on paper, but keep a note of what steps you do and try and work out what "Algorithm" you are using.

Once you've worked out your algorithm, have a go at writing some C# that does the same thing.

Kragen
+3  A: 

One more advice that can help you is that you'll need to store the equation in some data structure and then (repeatedly) run some steps that modify the data structure. The question is, which data structure can nicely represent this kind of data? If you focus just on the coefficients (since each row always has the same variable in it), you can write just:

2  7  2  76   
6  1  4  26   
8  2  18  1   

Also, you can assume that all operations are + because "minus 7y" actually means "plus (-7)y". This looks like a 2D array, so when programming in C#, you can start by representing the equations as int[,]. Once you load the data into this data structure, you'll just need to write a method that does the operation you did on paper (in general).

Tomas Petricek
+1  A: 

Once you get the coefficients represented by a matrix (2 dimensional array), try googling "RREF" (Reduced Row Echelon Form). This is the matrix operation you will want to implement in your program in order to solve the system of equations. Good luck.

Jeff Wilhite