[itbase2024]Fortran 課題 問題
問題
下に用意した日本周辺の地震の震源分布のデータを用いて, 下に説明する処理を行うプログラムを作り, gnuplot を使って処理結果のグラフを描きなさい. 作成したプログラムのファイルと図を提出しなさい.
- 下に示すデータを用いて地震のマグニチュードの度数分布 (ヒストグラム) を求めるプログラムを作りなさい. 求める度数分布のマグニチュードの刻み幅と開始点と終点は, 自分が適切と考える値として良い. もし刻み幅を自分で決められないようならば 0.1 とするとよいだろう.
地震のマグニチュードと発生数には下の関係があることが知られている.
この関係はグーテンベルク・リヒター則 (Gutenberg-Richter law; Gutenberg and Richter, 1949) と呼ばれる. この関係式の定数 a と b を最小二乗法に基づいて求めるプログラムを作りなさい. ただし, a と b を求める際にはマグニチュード 4 から 7 までの震源のデータを用い, もし地震の発生数 1 以下のマグニチュード範囲があれば除くこと.
- gnuplot を使って (1) で求めた度数分布のグラフを描きなさい. さらにグラフには (2) で求めた直線を重ね描きしなさい. グラフの横軸をマグニチュードとし, 縦軸を度数の対数としなさい.
上の 1, 2 の両方を処理する一つのプログラムを作っても良いし, それぞれを処理する一つずつのプログラムを作っても良い. また, 3 で描くグラフには必ず縦軸と横軸の意味と単位 (あれば) を書くこと.
- 作成したプログラム (ソースコード, .f90 ファイル) とグラフ (pdf 形式) は BEEF+ の「最終レポート (プログラムとグラフのファイル)」に提出しなさい.
- 最小二乗法を用いて求めたグーテンベルク・リヒター則の定数 a, b の値は「最終レポート (記述)」に記述しなさい.
- 提出期限までに完成しない場合は提出時点でのものを提出し, 「最終レポート (記述)」にどこまでできていて, どこができなかったのか, また, どこに悩んだのかの詳細を説明しなさい.
データ
- 地震のデータファイル
- データ形式
- ファイルには 10 種類の数値が保存されている. それぞれの数値の意味は以下の通り.
- 1 カラム目 : 年
- 2 カラム目 : 月
- 3 カラム目 : 日
- 4 カラム目 : 時
- 5 カラム目 : 分
- 6 カラム目 : 秒
- 7 カラム目 : 経度 (°)
- 8 カラム目 : 緯度 (°)
- 9 カラム目 : 深さ (km)
- 10 カラム目 : マグニチュード
- ファイルには 10 種類の数値が保存されている. それぞれの数値の意味は以下の通り.
gnuplot を用いたヒストグラムの描き方
例えば,
区間 頻度 2.0 < M ≦ 2.5 15 2.5 < M ≦ 3.0 18 3.0 < M ≦ 3.5 22 3.5 < M ≦ 4.0 25 4.0 < M ≦ 4.5 32 4.5 < M ≦ 5.0 35 5.0 < M ≦ 5.5 42 5.5 ≦ M ≦ 6.0 31
のデータのヒストグラムを描く場合, ファイルに下のように 1 カラム目に頻度区分の中心値, 2 カラム目に頻度を保存する.
2.25 15 2.75 18 3.25 22 3.75 25 4.25 32 4.75 35 5.25 42 5.75 31
そして, gnuplot で下のようにすることで頻度分布 (ヒストグラム) を描くことができる.
gnuplot> plot "file.txt" with boxes
参考文献
- Gutenberg,B.and C.F.Richter (1949) Seismicity of the earth and associated phenomena, Princeton Univ.Press.
謝辞
- 数値データは気象庁のウェブページからダウンロードしました.
解答例
ただし, 下のグラフは正しくありません.
Keyword(s):
References:[[itbase2024]最終課題]