View Full Version : [SOLVED] 3 variables equation

StOoZ

December 5th, 2008, 06:32 PM

yes this is homework , and NO im not looking for a solution , just for some points.

im trying to solve this for the last couple of hours , to no avail.

any idea how to do the following (NOT SOLUTION!!!!!) :

equation : Ax + By + Cz = D

read A , B , C , D , and N , and find all the solutions in the range of :

-N<= x,y,z <=N

for example : if x = k , y = f , z = m , so if

-N<= k,f,m <=N

so one of the solutions is : (k,f,m).

thanks!

nvteighen

December 5th, 2008, 07:15 PM

Usually you need n equations to solve a system for n variables... So, I guess you have 3 equations or otherwise, you'll have to use parametrical values.

Have you looked at Gaussian elimination (http://en.wikipedia.org/wiki/Gaussian_elimination)?

aashay

December 5th, 2008, 07:19 PM

3 nested for loops?

pp.

December 5th, 2008, 08:13 PM

What do you mean by

-N<= x,y,z <=N

cszikszoy

December 5th, 2008, 11:11 PM

What do you mean by

Pretty sure that means find all solutions where x, y, and z are between +- N

pp.

December 5th, 2008, 11:21 PM

Pretty sure that means find all solutions where x, y, and z are between +- N

Ah. That would be

(-N <= x <= N) v (-N <= y <= N) v (-N <= z <= N)

I guess.

For the problem to make any kind of sense, I also would guess that for x, y and z we have to consider natural numbers only?

For smallish values of N I would be tempted to do a brute force approach. Simply create all combinations of x,y,z and run each triplet through the equation.

slavik

December 5th, 2008, 11:47 PM

in this situation (since we know the range) brute force is the only option.

StOoZ

December 5th, 2008, 11:53 PM

ok the problem was solved , thanks a lot!!

I just tried over and over again.

):P

WitchCraft

December 5th, 2008, 11:55 PM

You have 4 variables, a,b,c,d:

ax +by +cz = d

this is ax + by + cz -d = 0

which is a plane.

This means the solution is something from analytic geometry (vectors).

You either need 3 equations (if d is given), or then you parametrize with t, where the number of variables minus the number of equations equals the degrees of free"doom".

Now assuming you have:

1x + 1y + 1z = 2

4x + 2y + 1z = 7

1x - 1y + 1z = -2

so you get the coefficient's matrix:

x y z | d

------------------- |---------

1 1 1 | 2

4 2 1 | 7

1 -1 1 | -2

-----------------------------

yo shall now substitute by row 2 = row 2 - (4/1) * row 1

and row 3 = row 3 - (1/1) * row 1

then row 3 = row 3 - (-1/[row2 y from last step]) * row 2

this leavs you with a triangular matrix:

x y z | d

------------------- |---------

1 1 1 | 2

0 2 3 | 1

0 0 3 | -3

-----------------------------

now you can do backward substitution:

3z = -3 --> z

use the value obtained for z from row3 in row 2 --> y

now use z & y from the two previous rows to solve for z in the first row.

Doing this in a computer program shouldn't be that difficult, just remember to use double and not int, because you're doing divisions...

):P

if you have one or more rows of zeros, or one line being a multiple of the other, then the system is unsolvable...

- exactly one solution for rank (koefficient matrix)= rank(extended coefficient matrix)

- infinite solutions for rank(coefficient matrix ) = rank(extended coefficient matrix)

- no solution if rank(coefficient matrix) < rank(extended coefficient matrix)

Now copy paste the rank function from somewhere from the internet...

(and look at how it works)

also x[i] = det(A[i])/det(A)

wikipedia, cramer's rule

now assume a parametrization:

4x + 2y + (a+2) z = a

2x + 2y + (a+1) z = 2a

5x + 4y - (a^2-a-2)z = 3a -1

now set up the extended coefficient matrix:

x y z | d

---------------------|---------

4 2a a+2 | a

2 2a a+1 | 2a

4 4a -a^2+a+2 | 3a-1

-----------------------------

now subtract the first row (2/4) times from the second row and so forth

now this leaves:

x y z | d

---------------------|---------

4 2a a+2 | a

0 2a a | 2a

0 0 a*(a+1) | a-1

-----------------------------

so for a = -1 follows, rank(A) = rank(B) = 2

so you have infinite solutions

for a = 0 you have rank(A) = 1 and rank(B) = 2

so there exist no solutions for a = 0.

in every other case, you've got exactly one solution.

Done.

now check whether all solutions are in the range! implement! :lolflag:

Powered by vBulletin® Version 4.2.2 Copyright © 2016 vBulletin Solutions, Inc. All rights reserved.