建築学生が学ぶ構造力学

  1. HOME > 計算プログラムから構造力学を学ぶ > 最大値を求めるアルゴリズム

最大値を求めるアルゴリズム

【管理人おすすめ!】セットで3割もお得!大好評の用語集と図解集のセット⇒ 建築構造がわかる基礎用語集&図解集セット(※既に26人にお申込みいただきました!)


ニューマークのβ法から時刻歴波形を求めることができました。ここで、最も関心があるのは応答の最大値です。一方、建物の揺れは固有周期によって変化します。 例えば、T=0.01~3secまで変化させ、それぞれの最大値を求め縦軸を最大値、横軸を固有周期としたグラフを「応答スペクトル」と呼んでいます。そこで、最大値を求める アルゴリズムについて勉強しましょう。


アルゴリズムの確認

最大値を求めたい場合、1つの方法としては初期値を決めておいて その初期値と次の値を比較します。よって、

・初期値>次の値→MAX=初期値

・初期値<次の値→MAX="次の値

・初期値=次の値→MAX=初期値

といった条件分岐が考えられると思います。あとは、データの数だけこの分岐を繰り返すことで そのデータの中での最大値が求められる仕組みです。



早速、Fortranで書いてみる。

さて、ダウンロードしたエディタ(僕はTerapad)を開いてプログラムを書いてみます。 まだコンパイラしていません。とりあえず、「Terapad」を利用している方は

「名前をつけて保存」→保存形式を「全てのファイル」として→「○○.f90」と保存してください。

そうすると、F90ファイルが生成されます。書いたプログラムはこんな感じ。


最大値のアルゴリズムを求める「一例」です。他にも方法はあるので、自分で色々と考えてみましょう。


!最大値を求めるプログラム

program max

implicit none

real a(2000)

real mx

integer i

open(1, file='max.txt',status='old')

!データの読み込み

do i = 1,481

read(1,*) a(i)

end do

!最大値を探索

mx=a(1)

do i =1,481

if(mx < a(i+1))then

mx=a(i+1)

else if(mx > a(i+1))then

mx=mx

endif

end do

!結果の書き出し

Write(*,*) ' max =',mx

close(unit=1)

end program max



max.f90の説明

「mx=a(1)」で初期値を決めています。まずはこの初期値が最大値です。次に「if(mx > a(i+1)thenで、初期値と次の値を比較しています。先ほどの条件を満たしていれば、最大値は次の値「mx=a(i+1)」となります。 しかし、「else if(mx > a(i+1))then」であるならば、最大値は前の「mx=mx」という値になります。ちなみに、このプログラムでは、「mx=a(i+1)」のときの条件を設けていません。本当はあった方がいいのですが、応答解析でめったに ないので、省略しました。「else文」を使って上手く表現できると思うので、気になる人は追加してください。


結果の確認

1行目に適当な数字を入力して「max.txt」を作成してください。その中での最大値を結果として吐き出したら、プログラムは完成です。 次は→「二重ループの例」を勉強しましょう。



▼スポンサーリンク▼

建築構造がわかる基礎図解集

noteで学ぶ建築士試験の構造

ゼロから建築士試験の構造を勉強しよう~!

ゼロから学ぶ建築士試験の構造

【好評】LINEで質問!

管理人に質問してみる?

友だち追加

わかる1級建築士の計算問題解説書

計算の流れ、解き方がわかる!1級建築士【構造】計算問題解説集

【初回資料が今だけ無料!】1日約13円で情報をアップデート!

有料メルマガを無料で見てみませんか?⇒ 忙しい社会人、学生のためのビルディング・アップデート

わかる2級建築士の計算問題解説書!

【30%OFF】一級建築士対策も◎!構造がわかるお得な用語集

建築学生が学ぶ「構造力学」の用語集
pdf版の学習記事

更新情報

プロフィール

建築の本、紹介します。▼

すぐにわかる構造力学の本

▼【好評!】管理人おすすめ▼

同じカテゴリの記事一覧

Topへ >>

  1. HOME > 計算プログラムから構造力学を学ぶ > 最大値を求めるアルゴリズム
  2. 1級の過去問(計算)解説
  3. 限定メルマガ
  4. わかる建築構造の用語集・図解集
  5. 1頁10円!PDF版の学習記事