昨夜書いたプログラム Fortran90

 昨夜書いたプログラムを載せる。random_number()で生成する乱数の値は0100)stop 'n must be 0 < n <101 '
allocate (a(n,n))
call random_number(a)
allocate (b(n))
call random_number(b)
allocate (x(n))
end subroutine set_random_ab

subroutine print_mat(a,b,n)
implicit none
real(8) a(n,n),b(n)
integer i,j,n
do i =1,n
do j=1,n
write(*,*) a(i,j)
enddo
write(*,*) b(i)
enddo


end subroutine print_mat
end module subprogs


program main
use subprogs
implicit none
real(8),allocatable::a(:,:),b(:),x(:),r(:)
integer n
call set_random_ab(a,b,x,n)
call print_mat(a,b,n)
call gauss_jordan(a,x,b,n)
allocate (r(n))
r(:)=b(:)-matmul(a,x)
write(*,*) 'Gauss-Jordan error = ',dot_product(r,r)
deallocate(a,b,x)
end program main

ブログ気持玉

クリックして気持ちを伝えよう!

ログインしてクリックすれば、自分のブログへのリンクが付きます。

→ログインへ

なるほど(納得、参考になった、ヘー)
驚いた
面白い
ナイス
ガッツ(がんばれ!)
かわいい

気持玉数 : 0

この記事へのコメント

この記事へのトラックバック