こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

fortran 上三角行列

一様乱数を要素とする上三角行列を設定するプログラミングを行ったのですが以下のプログラムで
call random_number(a(1 : j , j))
a(j+1 : n , j ) = 0.0d0
の部分を理解した上で実行したのですが、実行結果がそれぞれの列に同じ一様乱数が表示されました。プログラム内容と実行結果が納得のいく物ではないのですが、果たして以下のプログラムは上三角行列を設定する正しく実行される物となっているのでしょうか?教えて下さい。よろしくお願いします。
program list2_8
implicit none
real(8), allocatable :: a(:,:)
integer n, i, j
write(*,'(a)', advance ='no') ' input n (1<=n<=100) :'
read(*,*) n
if (n < 1 .or. 100 < n) stop 'stop, n is invalid'
allocate (a(n,n))
call random_seed
do j = 1, n
call random_number(a(1:j,j))
a(j+1:n,j) =0.0d0
enddo
do i = 1, n
write(*,'(100e12.4)') a(1, 1:n)
enddo
end program list2_8

投稿日時 - 2009-10-17 12:25:18

QNo.5373796

すぐに回答ほしいです

質問者が選んだベストアンサー

明らかにこれはおかしいよね。
write(*,'(100e12.4)') a(1, 1:n)
正しくはこれ。
write(*,'(100e12.4)') a(i, 1:n)

投稿日時 - 2009-10-17 14:03:14

お礼

ありがとうございました。全く気づきませんでした。ご指摘ありがとうございました。助かりました。

投稿日時 - 2009-10-17 15:00:10

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問