-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy patheigenvalues.f90
More file actions
63 lines (52 loc) · 1.47 KB
/
Copy patheigenvalues.f90
File metadata and controls
63 lines (52 loc) · 1.47 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
include 'methods.f90'
program eigenvalues
implicit none
integer :: n, m, i, j, k
real, allocatable, dimension(:) :: lambda
real, allocatable, dimension(:,:) :: a, x
real :: tolerance, alfa
Character(len = 100) :: fileName
alfa = 0.18
print*,"Digite o nome do arquivo com o sistema a ser resolvido:"
read(*,*) fileName
open (1, file=fileName, status='old', action='read')
read(1,*) n, m
allocate(a(n,m))
do i=1, m
read(1,*) ( a(j,i) , j= 1 , n)
end do
read(1, *) tolerance
close(1)
print*, a
a = a * alfa
print*, a
allocate(x(n, n))
allocate(lambda(n))
x = 0
lambda = 0
!call powerMethod(a, x, n, tolerance, lambda(1), k)
call jacobi(a, x, n, tolerance, lambda, k)
print*, "lambda = ", lambda
print*, "x = ", x
open(2, file='RESUL_' // fileName //'.txt', status='old')
write(2, *)
write(2, *) "Questão 1 - b"
write(2, *) "A"
do i=1, n
write(2,*) (a(i, j), j=1, n)
end do
write(2, *) "Auto-vetor do maior auto-valor"
do i=1, n
write(2,*) (x(i, j), j=1, n)
end do
write(2,*) (x(j, 1), j=1, n)
write(2, *) "Todos os auto-valores"
write(2, *) (lambda(i), i=1, n)
!write(2, *) (lambda(1))
write(2, *) "Tolerância"
write(2, *) tolerance
write(2, *) "Numero de iterações"
write(2, *) k
close(2)
call sleep(10000)
end program eigenvalues