Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- det A = sum on i=1...N:(-1)**(i+1) a_i1 det ||A||_i1
- integer, parameter :: rk= selected_real_kind(6)
- end module prec
- module lap
- use prec
- implicit none
- contains
- recursive function det(a,n) result (d)
- real(kind=rk), intent(in), dimension(n,n) :: a
- real(kind=rk), dimension(n-1,n-1) :: b
- real(kind=rk) :: d
- integer ::i
- integer, intent(in)::n
- if (size(a) > 4) then
- do i=1,n
- b(1:(i-1),:) = a(1:(i-1),:)
- b(i:n,:) = a((i+1):n,:)
- b(:,:) = a(:,2:n)
- d= ((-1)**(i+1))*a(i,1)*det(b,n)
- end do
- else
- d = a(1,1)*a(2,2)-a(1,2)*a(2,1)
- end if
- end function det
- end module lap
- program sistema
- b(1:(i-1),:) = a(1:(i-1),2:n)
- b(i:n,:) = a((i+1):n,2:n)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement