Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

北尾早霧・砂川武貴・山田知明『定量的マクロ経済学と数値計算』日本評論社

第1章:数値計算ことはじめ

本リポジトリは、北尾早霧・砂川武貴・山田知明『定量的マクロ経済学と数値計算』(日本評論社)の第1章に対応するサポートコードを収録しています。


フォルダ構成

chapter1/
└── Julia/
    └── 1_7_computational_error/
        ├── quantmacro_chapter1.ipynb   # Jupyter Notebook(実行可能)
        └── quantmacro_chapter1.html    # 実行結果を埋め込んだHTMLファイル

現時点では Julia のコードのみ提供しています。


ファイルの説明

  • Julia/1_7_computational_error/quantmacro_chapter1.ipynb
    • Juliaの簡単な使い方と「1.7節 計算誤差は必ず存在する」について説明をしたJupyter Notebookです。
  • Julia/1_7_computational_error/quantmacro_chapter1.html
    • 拡張子が.ipynbのファイルはJupyter Notebook(あるいはJupyter Lab)から開く必要があるため、htmlファイルも同梱しています。ダブルクリックすると普段使っているウェブブラウザから開くことが出来ます。ただし、こちらは計算結果が埋め込まれていて、結果を眺めるだけで、自力で計算結果を確かめることは出来ません。コードを実行したい場合、Juliaの環境設定マニュアルを読みながら、JuliaとJupyter Notebookをインストールしてください。

Notebook の内容

本 Notebook では、Julia の基本的な使い方を学びながら、数値計算における誤差の概念を解説しています。以下のトピックを扱っています。

1. Juliaにおける型(Type)

Julia は動的型付けの言語であり、変数の型を意識せずにプログラムを書けます。ただし、整数(Integer)と浮動小数点数(Float)の区別はコンピュータ内部の処理に影響します。型を確認する typeof() の使い方も紹介しています。

2. 型の違いによる計算速度の差

整数の指数(例:5^2)と浮動小数点の指数(例:5^2.0)では、コンピュータ上の計算処理が異なるため、計算速度に差が生じます。@time マクロを使ってループ計算の速度を計測し、型の選択が実用上のパフォーマンスに影響することを確認します。

3. 型ごとの最大値・最小値とオーバーフロー

すべての数値型には表現できる上限・下限があります(例:Int64 の最大値は約 $9.2 \times 10^{18}$)。typemax()typemin() でその範囲を確認し、上限を超えた場合(オーバーフロー)に何が起こるかを Julia で検証します。

4. 丸め誤差(Rounding Error)

コンピュータ上では $1/3$ などの循環小数を正確に表現できないため、どこかで値を丸めています。これが丸め誤差です。Julia の有理数型(Rational)も紹介しています。

5. 桁落ち(Truncation Error)

非常に大きな数と非常に小さな数を混在させた計算では、数値の情報の一部が失われ、誤差が生じます(桁落ち)。教科書 1.7 節の例として、 $$ \frac{(1+x)-1}{x} $$ を $x$ が非常に小さい場合に計算し、数学的に正しい答え($= 1$)から大きくずれることを確認します。


動作環境

本 Notebook を作成した際の環境は以下の通りです。お使いの環境によって計算速度などに差が生じることがあります。また、Julia のバージョンによっては一部のコマンドに違いが生じる可能性があります(よほど古いバージョンでなければ問題ありません)。

詳しいバージョン情報は Notebook 冒頭の versioninfo() の出力を参照してください。


セットアップ

Julia と Jupyter Notebook のインストール・環境設定については、インストールと環境構築のガイド を参照してください。


参考文献

  • A. クアルテローニ / F. サレリ / P. ジェルヴァシオ(2014)『MATLAB と Octave による科学技術計算』丸善出版
  • 石井一夫(2021)『基礎から学ぶ Julia』SCC

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

2 watching

Forks

Releases

Packages

Contributors

Languages