コンピュータ演習

(地球環境防災)学科2年後期の授業。

Jupyter Notebook 環境で,Maxma-Jupyter, Python, gnuplot の演習。弘大 JupyterHub を利用して,Web ブラウザさえあれば学内のみならず自宅からでも,日本国内であればどこからでも Jupyter Notebook が使える環境を最大限に活用。

また,学科の専門上,Fortran の需要も一定の割合であると思われるので,Visual Studio Code をエディタとして使う例も解説する場合もある。

授業内容は全てWeb コンテンツとして準備。

Maxima-Jupyter による数式処理とグラフ作成
はじめての Maxima プログラミング
  参考:Maxima で数値解析
  参考:Maxima で一様重力場中の単ふりこの運動
  参考:Maxima で空気抵抗がある場合の斜方投射
はじめての Python プログラミング
  参考:Python で数値解析
  参考:Python で一様重力場中の単ふりこの運動
  参考:Python で空気抵抗がある場合の斜方投射
はじめての Fortran プログラミング vscode 版
  参考:はじめての Fortran プログラミング Jupyter Notebook 版
gnuplot によるグラフ作成
はじめての gnuplot プログラミング
  参考:gnuplot で数値解析
  参考:gnuplot で空気抵抗がある場合の斜方投射

 

このセクションの構成

Python でコンピュータ演習

「Maxima でコンピュータ演習」の内容を Python の SymPy で。

Maxima でコンピュータ演習

コンピュータ演習では,理工系の数学でやったことは簡潔におさらいするにとどめ,数値解析的な手法の紹介もする。また,グラフの描き方やパラパラアニメの作り方についても少し。

はじめての Maxima プログラミング

あちらの「はじめての Maxima プログラミング」に若干の補足説明を追加したもの。Maxima には構造化プログラミングの機能もあり,条件分岐や繰り返し処理などを利用することで,プログラミング言語としても利用できます。

Maxima で数値解析

あちらの「Maxima で数値解析」では,Maxima の数値解析的な関数を利用するほかに,解析的な方法や自前で数値解析的コードを書く方法なども併せて紹介しているので,ここでは数値解析な関数の利用について抜粋して紹介する。

はじめての Python プログラミング

あちらの「はじめての Python プログラミング」に若干の補足説明を追加したもの。

Python で数値解析

あちらの「Python で数値解析」のページでは,SymPy に解析的な方法,SciPy による数値解析法,それに自前で数値解析的コードを書く方法とごった煮になっているので,整理して別々のページにまとめてみた。

単振り子の運動方程式を数値的に解く準備

単振り子の振幅と周期の関係を数値的に調べる。振幅が「十分に小さい」時には単振動になり,単振り子の周期は振幅に依存しないことが知られているが,振幅が大きい場合(十分に小さい」という近似が成り立たない場合),単振り子の周期は振幅にどのように依存するか。

単振り子のエネルギー保存則から周期を求める準備

単振り子の運動方程式から得られるエネルギー保存則から,数値積分によって周期を求めるための準備。

高さ h からの斜方投射の最大到達距離を求める準備

地面から高さ $h$ の地点から空気抵抗なしの斜方投射を行うと,水平方向の到達距離が最大となるのは打ち上げ角度(仰角)が $45^{\circ}$ のときではない。何度のときかを求めるための準備。

空気抵抗がある場合の斜方投射を調べる準備

鉛直下向きの一様重力場中で,ある初速度をもって物体を空中に投げ出す。これを業界用語で「斜方投射」(Wikipedia 英語版タイトルでは Projectile motion)という。

空気抵抗が無視できる場合には,斜方投射された物体は放物線を描いて運動し,初速度一定の条件で水平な地上面から投射角 $\theta$ で投射された物体の水平到達距離が最大となるのは,$\theta = 45$° であることが知られている。

では,空気抵抗がある場合はどうなるか?

空気抵抗がある場合,初速度一定の条件で投射された物体の水平到達距離が最大となる投射角 $\theta$ を調べるために,まずは準備。