# Fortran question

1. May 15, 2012

### just physics

hi im just start learning fortran and i have aproblem with my homework:
we have to write a code to solve system of equations by writing them in matricies (tridiagonal matrix) form
the first step is to enter the coefficients of the variables (r1,r2,r3,...) and then the answers to the equations (b1,b2,b3,...) by using array , ok i can write it but the problem is how can i print the equations in the form:
r1X1+r2X2=b1
r1X1+r2X2+r3X3=b2
i cant do this step !!!!

2. May 15, 2012

### gsal

Something like this may do the trick:

Code (Text):

do i = 1, n
do j = 1, n
write(*,"(sp,f5.1,'X',ss,i1)", advance='no') r(i,j), j
end do
write(*,"(' = ' , f5.2)") b(i)
end do

square system, n x n
r coefficients stored in a 2-dimensional matrix and the
right-hand-side b stored in a vector
nested do-loops
inner loop writes one coefficient and variable at a time, without carriage return
inner loop writes left-hand-side of equal sign
'sp' format spec indicates to explicitly show the positive or negative sign of the r coefficient
'ss' format spec turns off the previous 'sp'...we know j is positive, but don't want sign there...we want to see, say, +3.4X2, not +3.4X+2
after left-hand-side has been written, we go out to the outer loop and write ' =' sign and the corresponding b constant...we can now let the write statement advance a line as usual.

...o.k., so I got a little fancy...

depending on the size of your system of equations and the magnitude of your numbers, you may need to adjust the format specs, of course...

Here is a sample output from the code above:

Code (Text):

+1.0X1 -2.0X2 +3.0X3 =  2.00
-4.0X1 +5.0X2 +6.0X3 = -3.00
+7.0X1 -8.0X2 +9.0X3 =  4.00

from there, I hope you get the gist of it and turn it into whatever you need/want

3. May 15, 2012

### just physics

thanks alot u r the best :)