環境システム科学演習 2回目 FORTRAN 文法について...
Post on 06-Jan-2016
44 Views
Preview:
DESCRIPTION
TRANSCRIPT
1
環境システム科学演習2回目
FORTRAN 文法について①コメント ②定数 ③配列 ④入出力文 ⑤文字の結合 ⑥ IF文 ⑦ IF文 ⑧副プログラム(サブルーチン)
その他・・・・
演習:相関北極振動指数と日本各地の気温の関係を調べる
2008.12.2
出典:探検しようみんなの地球http://www.mofa.go.jp/mofaj/gaiko/oda/sanka/kyouiku/kaihatsu/chikyu/statistics/nature/graph_02.html
温暖 寒冷寒冷温暖
北極振動のパターン
白白
黒黒
黒黒
灰灰 灰灰
北極振動とは?
「北極海で気圧が下がれば、北大西洋、北太平洋で気圧が上がり」、「北極海で気圧が上がれば、北大西洋、北太平洋で気圧が下がる」というパターン。
北極海で低気圧偏差のとき >北極振動指数は正ーー
北極海で高気圧偏差のとき >北極振動指数は負ーー
PARAMETERは定数を与える
②定数
CHARACTERは文字であることを宣言
REAL なら実数であることを宣言INTEGERなら整数であることを宣言
暗黙の了解について:何も宣言しないならば、 A-H,O-Zは実数 I-Nは整数になる
DIMENSION配列であることを宣言
③配列
I=1 2 3 … N-2 N-1 N
J =1 AO(1,1) AO(2,1) AO(3,1) … AO(N-2,1) AO(N-1,1) AO(N,1)
2 AO(1,2) AO(2,2) AO(3,2) … AO(N-2,2) AO(N-1,2) AO(N,2)
3 AO(1,3) AO(2,3) AO(3,3) … AO(N-2,3) AO(N-1,3) AO(N,3)
… … … … … … … …
M-2 AO(1,M-2) AO(2,M-2) AO(3,M-2) … AO(N-2,M-2) AO(N-1,M-2) AO(N,M-2)
M-1 AO(1,M-1) AO(2,M-1) AO(3,M-1) … AO(N-2,M-1) AO(N-1,M-1) AO(N,M-1)
M AO(1,M) AO(2,M) AO(3,M) … AO(N-2,M) AO(N-1,M) AO(N,M)
装置(この場合はファイル)を OPENする
ファイルを読み込んだり、ファイルに書き込んだりする
④入出力
暗黙の了解について:5番はキーボード6番は CRT(画面)
READ(*,*) の最初の *はキーボードWRITE(*,*) の最初の *は画面つまり、READ(*,*)は READ(5,*) と同じWRITE(*,*) はWRITE(6,*)と同じ
5番、 6番以外はファイルを指定する
CHARACTERで宣言しないときは、’ ’
で囲めば文字変数になる
⑤文字の結合
FNは 3文字の文字であると宣言した。’A0’と’ .TXT’は数値ではなく文字「 A0」と「 TXT」である。
’A0’ //FN// ’.TXT’は、 FNとして、 ATSを指定すると「 A0ATS.TXT」という文字を意味する。
I=1 2 3 … N-2 N-1 N
J =1 AO(1,1) AO(2,1) AO(3,1) … AO(N-2,1) AO(N-1,1) AO(N,1)
2 AO(1,2) AO(2,2) AO(3,2) … AO(N-2,2) AO(N-1,2) AO(N,2)
3 AO(1,3) AO(2,3) AO(3,3) … AO(N-2,3) AO(N-1,3) AO(N,3)
… … … … … … … …
M-2 AO(1,M-2) AO(2,M-2) AO(3,M-2) … AO(N-2,M-2) AO(N-1,M-2) AO(N,M-2)
M-1 AO(1,M-1) AO(2,M-1) AO(3,M-1) … AO(N-2,M-1) AO(N-1,M-1) AO(N,M-1)
M AO(1,M) AO(2,M) AO(3,M) … AO(N-2,M) AO(N-1,M) AO(N,M)
内側:Jが 1~ Nまでを繰返し行うという意味です。上の表の矢印の順に作業を行います。ここでは、 11番のファイル「 AO.TXT」から順番に 1からM(= 12)まで読み込むことを意味します。
Jについて 2つおき行いたい場合には、 J=1,M,2とします。外側:
外側も同じです。上の表の点線にのように作業します。
⑥DOループ
IFのブロック
判定を行う、 IF文です。ここでは、もし、 Jが 11以上ならば、IF(J.GE.11) THENとEND IFに挟まれた部分の計算を行います。実際には、 Jが 11よりも大きな値を取るのは、 J=11か J=12しかありません。つまり、 11月と 12月だけ考えますよというものです。
ここでは、 X(I)を計算しているものを説明します。I=1( 1950年)から始まります。J= 11のとき初めて、 IFブロックに入ります。そして、AOTMPに AO(1,11)の値を入れますよとしています。そして、配列 X(1)に AOTMPと X(1)を足したものを与えます。この演算を行う前には、 X(1)は、まだ何も数値を与えていないので、 X(1)は 0です。
演算後、次に、 J=12になります。これも、 11以上ですから、演算を行います。このとき、 X(1)には既に 11月の値が入っていることに注意してださい。そして、 AOTMPには、 AO(1,12)の値を入れます。X(1)=AOTMP+X(1)とは、 AO(1,11)と AO(1,12)を足したものを意味しているのです。
Y(I)も基本は同じです。
11月と 12月の和を計算したので、その 0.5倍しています。これは 11-12月の平均を求めているのです。
装置番号 6番(画面)と装置番号 13番「ファイル」に値を出力します。IY(I):年X( I): 11-12月の平均北極振動指数Y(I): 11-12月の平均気温です
⑦IF文
相関係数を計算する副プログラムを呼び出します。
主プログラムの変数と副プログラムの変数をPEARSON( X,Y,N,R)の括弧内で引き渡しします。
メインプログラムの X(N)、 Y(N)、 Nが 副プログラムに引き渡され、副プログラムで計算された Rがメインプログラムに引き渡されます。
Rが求めるべき相関係数です
相関係数を画面に出力します
開いた装置は、閉じてあげます
プログラムを STOPさせ終了させます( ENDさせます)。
⑧副プログラム
(サブルーチン)
相関係数 1とは?
-0.4
-0.3
-0.2
-0.1
0
0.1
0.2
0.3
0.4
-1.5 -1 -0.5 0 0.5 1 1.5
(xn, yn)
(xn+1, yn+1)
(xn+1, yn+1)=α(xn, yn)のとき、散布図は一直線になる。
つまり、y =αxの関係が成り立っていて、xの値とyの値が 1対 1に対応する場合に相当。
このケースが相関係数 1
相関係数の数学的な意味数学的には、ベクトルのなす角度に関係している。
直線に“のっかる”とは、ベクトルのなす角度が小さいこととして表現できる
A と Bのなす角度( θ)は
cosθ = a ・ b
| a | ・ | b |
= cosθa ・ b | a | ・ | b |
ベクトルの内積
(x1, y1)
(x2 y2)
x1×x2+ y1×y2 = √( x1 + y1 ) × √ ( x2+ y2 ) 2 2 2 2 ×cosθ
( 0,0)
a =( x1, y1) b =( x2, y2),
データの数が3個だったら?
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
1.2
-1.5 -1 -0.5 0 0.5 1 1.5
これでも、相関はあるといえるの?
たまたま、何じゃない? ってことも考えられる。
データの個数に応じて、相関がありと言える相関係数の閾値がある
次のページの表で、5%の有意水準というのは、
95%の確率で確からしい1%の有意水準というのは、
99%の確率で確からしいことを意味している。 (詳細は省略)
いくつかの地点の月平均気温を、札幌 (ATS.TXT)、東京 (ATT.TXT) 、大阪 (ATO.TXT) 、福岡 (ATF.TXT) 、
南大東島 (ATM.TXT)に入れてある。それぞれの地点での北極振動指数( AO)との相関係数を求め、
相関があるか無いかを判定しなさい。
標本数(データ数)と相関係数の限界値
(N)データ数 (N- 2)自由度 5%有意水準 1%有意水準 (N)データ数 (N- 2)自由度 5%有意水準 1%有意水準
1 3 0.997 1 25 27 0.381 0.4872 4 0.95 0.99 26 28 0.374 0.4793 5 0.878 0.959 27 29 0.367 0.4714 6 0.811 0.917 28 30 0.361 0.4635 7 0.755 0.875 29 31 0.355 0.4566 8 0.707 0.834 30 32 0.349 0.4497 9 0.666 0.798 31 33 0.344 0.4428 10 0.632 0.765 32 34 0.339 0.4369 11 0.602 0.735 33 35 0.334 0.4310 12 0.576 0.708 34 36 0.329 0.42411 13 0.553 0.684 35 37 0.325 0.41812 14 0.532 0.661 36 38 0.32 0.41313 15 0.514 0.641 37 39 0.316 0.40814 16 0.497 0.623 38 40 0.312 0.40315 17 0.482 0.606 40 42 0.304 0.39316 18 0.468 0.59 42 44 0.297 0.38417 19 0.456 0.575 44 46 0.291 0.37618 20 0.444 0.561 46 48 0.285 0.36819 21 0.433 0.549 48 50 0.279 0.36120 22 0.423 0.537 58 60 0.254 0.3321 23 0.413 0.526 68 70 0.235 0.30622 24 0.404 0.515 78 80 0.22 0.28623 25 0.396 0.505 88 90 0.207 0.2724 26 0.388 0.496 98 100 0.197 0.256
例えば、データ数が 58個の場合、 相関係数が 0.254以上の場合、 95%の信頼で相関があると言える
top related