FORTRAN 90 Lecturer : Rafel Hekmat Hameed University of Babylon Subject : Fortran 90 College of Engineering Mechanical Engineering Dep. Year : Second B.Sc. The method of solution of linear equations by determinantes is called Cramer's Rule. Let's use the following system of equations: 2x + y + z = 3 x– y–z=0 x + 2y + z = 0 We have the left-hand side of the system with the variables (the "coefficient matrix") and the right-hand side with the answer values. Let D be the determinant of the coefficient matrix of the above system, and let Dx be the determinant formed by replacing the x-column values with the answer-column values: system of equations coefficient matrix's determinant answer column Dx: coefficient determinant with answer-column values in x-column 2x + 1y + 1z = 3 1x – 1y – 1z = 0 1x + 2y + 1z = 0 Similarly, Dy and Dz would then be: Copyright © Elizabeth Stapel 2004-2011 All Rights Reserved ϭ Evaluating each determinant, we get: Cramer's Rule says that x = Dx / D , y = Dy / D, and z = Dz / D. That is: x = 3/3 = 1, y = –6/3 = –2, and z = 9/3 = 3 Cramer's Rule is a handy way to solve for just one of the variables without having to solve the whole system of equations. program cramer_rule implicit none integer::i,j,d1,d2,d3 ,det integer,parameter::n=3 real,dimension(n,2*n-1)::a,a1,a2,a3 real,dimension(n)::b real::x,y,z data b/3,0,0/ read(*,*)((a(i,j),j=1,n),i=1,n) call determinant (a,det) a1=a;a2=a;a3=a do i=1,n a1(i,1)=b(i) Ϯ enddo call determinant (a1,d1) x=d1/det do i=1,n a2(i,2)=b(i) enddo call determinant (a2,d2) y=d2/det do i=1,n a3(i,3)=b(i) enddo call determinant (a3,d3) z=d3/det print*,"x=",x ,"y=" ,y , "z=",z ; end subroutine determinant (a,det) implicit none integer,parameter::n=3 real,dimension(n,2*n-1)::a integer::i,j ,d1,d2,det do i=1,n do j=1,n-1 a(i,n+j)=a(i,j) enddo ; enddo do i=1,n; d1=1;d2=1 do j=1,n d1=d1*a(j,i+j-1) d2=d2*a(j,2*n-i-j+1) enddo det=det+d1-d2 ; enddo end ϯ