Linux数値計算ツール

Linux数値計算ツール

使いやすく,高速で信頼性の高い数値計算用のツールとして,フリーソフトウェアであり,MATLABに準互換なOctaveとScilabを取り上げ,数値計算の仕方について解説している。また,ScilabはWindows版も紹介している。

ジャンル
発行年月日
2000/10/20
判型
A5
ページ数
182ページ
ISBN
978-4-339-02378-7
Linux数値計算ツール
在庫僅少

定価

2,420(本体2,200円+税)

カートに入れる

電子版を購入

購入案内

  • 内容紹介
  • まえがき
  • 目次
  • レビュー
  • 著者紹介

使いやすく,高速で信頼性の高い数値計算用のツールとして,フリーソフトウェアであり,MATLABに準互換なOctaveとScilabを取り上げ,数値計算の仕方について解説している。また,ScilabはWindows版も紹介している。

数値計算はコンビュータの最初の応用である。その意味で,数値計算の歴史はコンピュータの歴史と重なる。数値計算のためのソフトウェアはこの間ずっと開発され続けてきた。したがって,現代においてはよいソフトウェアの膨大な蓄積がある。理工系の学生が実際的な数値計算法を体得するためには,このようなプロの作った道具を実際に使ってみるところからスター卜するのがよい。幸い, Linux(UNIX) のフリーソフトウェアには,高品質な数値計算用ツールが揃っている。本書は,理工系の学生がこれらの高品質なLinuxの数値計算ツール(具体的にはOctave とScilab) に習熟できるよう解説を加えることを目標に書かれている。
Linux の数値計算ツールの優れたものは,非常に簡単にかつ高速,高精度に問題が解けるように設計されており, 信じられないほど使い勝手がよい。したがって,本書では実際に問題を解きながら,それらのツールについて学んでいくという方針を取っている。また,数値計算ツールの背後で利用されている
l. 数値計算理論
2. プログラミング理論
3. コンピュータアーキテクチャ技法
をやさしく解説している。こうして
1. 将来,研究者や技術者となって理工学の第一線に立っても,本書で学んだツールがそのまま役に立ち
2. 数値計算ツールが利用している現在のコンピュータのアーキテクチャの基礎を理解することによって,C言語,C++,FORTRAN などで自分でプログラミングするようになった際に,プロの用いていた技法を応用することができるようになることにも配慮している。
初心者が数値計算の本を読んで, C言語やC++などで数値計算のプログラムを作ったとしても,プロの作った数値計算のプログラムの100倍は実行速度が遅く,また,安定性にも欠けたものしかできないといわれている。本書では,最終的には,その100倍の差がどこからくるのかを明らかにしている。
以上が前半であるが,ここまでは実際に数値計算ツールを使いながら学習していただくことを考えて,見聞き2ページで一つの項目が終わるように工夫してみた。パソコンの横に本書を置いて,コマンドを打ち込みながらツールに親しんでいただきたい。図も手書き感覚で大きくしてみた。これは,書画カメラで映して教室で講義することも想定している。
また,後半では,数値計算で求めた結果がどれだけの誤差を含んでいるかを品質保証する問題を扱っている。すなわち,プログラミング以降の章では,プログラミングの例としてつぎのようなプログラムが示されている。まず,数値計算ツールで求めた連立一次方程式の解(近似となるので,これを数値解と呼ぶ)の近くに真の解が存在することを,数値計算によって検証するとともに,もし真の解が存在すると判定された場合には真の解と数値解の間の誤差のシャープな上限を計算するプログラムの作成法を示している。つぎに, 実対称行列の固有値を数値計算ツールで計算した結果にどれだけの誤差が合まれるかを計算するプログラムの作成法が示されている。最後に,非線形方程式の数値解に含まれる誤差を計算するプログラムの作成法が示されている。
これらのプログラムは,数値解を計算することの2倍から数倍程度で誤差を計算するので,少なくとも以上のような分野においては数値解に含まれる誤差を計算するのは実用段階に到達したことがおわかり項けると思う。これは,実は数値計算の分野においては革命的なできごとであって,本書を執筆した著者の意図は実は後半のようなプログラミングが実に簡単にできること,および,それらのプログラムが,数値解を求めるのに対して数倍程度の実行時間で,シャープな誤差評価を与えることを示すことにあった。
さらに,最後の章においては,有理数演算を行えるCalcと呼ばれる数値計算ツールによる精度保証付き数値計算について解説している。
なお,本書で紹介する有力なフリーの数値計算ツールであるScilab2.5にはWindows98 用の実行ファイルがある。本書中で紹介しているlnriaのホームページから,このScilab2. 5の実行ファイルもダウンロードできる。ダウンロードしたScilab2.5.EXEのアイコンをダブルクリックすると,Windows98上でScilab2.5のインストールが始まる。インストール途中で質問される問にすべてデフォルトで指示されているものを指定すれば, Scilab2 .5のインストールに成功する。Windows98上でのScilab2.5の使用法はLinux版とほぼ同じであるので,Scilab2.5のWindows版を用いれば,本書の内容はWindows98上でも実行できることとなる。
なお,本書の補足の情報を著者のホームページhttp: //www.oishi .info.waseda.ac.jpに置くので参照されたい。
本書が,数値計算ツールが日本でも普及し,さらに数値解の精度保証が日常的になることにいささかでも役に立つことがあれば著者の望外の幸せである。
2000 年8月
大石進一

1. 数値計算ツールのインストール
 1.1 どんな数値計算ツールがあるか
  1.1.1 MATLAB
  1.1.2 OctaveとScilab
 1.2 OctaveとScilabのインストール
  1.2.1 Octaveのインストール
  1.2.2 Scilabのインストール
 1.3 グラフィックス
  1.3.1 Octaveのグラフィックス
  1.3.2 Scilabのグラフィックス

2. 連立一次方程式
 2.1 連立一次方程式の解法
 2.2 行列の演算
 2.3 逆行列の計算
 2.4 LU分解法
  2.4.1 LU分解法とはなにか
  2.4.2 ピボット付きLU分解を求めるコマンド
  2.4.3 LU分解による連立一次方程式の解法
 2.5 行列式
 2.6 さまざまな行列
 2.7 連立一次方程式の解法のまとめ

3. 行列の固有値問題
 3.1 実行列に対する固有値問題
  3.1.1 MATLABとOctaveの場合
  3.1.2 Scilabの場合
 3.2 複素行列に対する固有値問題
  3.2.1 複素数
  3.2.2 複素行列の固有値
 3.3 固有値問題の理論とアルゴリズム
 3.4 固有値の求め方とまとめ

4. 数値積分の最適化問題
 4.1 数値積分
  4.1.1 Octaveでの定積分の数値計算法
  4.1.2 Scilabでの定積分の数値計算法
  4.1.3 MATLABで定積分の数値計算法
  4.1.4 数値積分のまとめ
 4.2 最適化問題
  4.2.1 線形計画法
  4.2.2 線形拘束条件を持つ2次計画問題
  4.2.3 最適化問題の解法のまとめ

5. 非線形方程式と常微分方程式の解法
 5.1 非線形方程式の解法
  5.1.1 Octaveの場合
  5.1.2 Scilabの場合
  5.1.3 非線形方程式の解法のまとめ
 5.2 微分方程式
  5.2.1 Octaveの場合
  5.2.2 Scilabの場合

6. プログラミング
 6.1 変数
  6.1.1 Octaveの場合
  6.1.2 Scilabの場合
 6.2 比較関係
  6.2.1 Octaveの場合
  6.2.2 Scilabの場合
 6.3 制御構造
  6.3.1 Octaveの場合
  6.3.2 Scilabの場合
 6.4 関数
  6.4.1 Octaveの場合
  6.4.2 関数のファイルへの保存
  6.4.3 スクリプトファイル
  6.4.4 ダイナミックリンク関数
  6.4.5 Scilabの場合
 6.5 プログラミングのまとめ

7. 線形方程式の数値解はどこまで正しいか
 7.1 数値計算の精度保証とは
 7.2 浮動小数点数
 7.3 丸めの方向の指定
  7.3.1 Octaveにおける丸めの方向の指定
  7.3.2 Scilabにおける丸めの方向の指定
 7.4 ノルム
  7.4.1 ベクトルのノルム
  7.4.2 行列のノルム
 7.5 精度保証の原理
 7.6 線形方程式の数値解と精度保証
  7.6.1 基本定理
  7.6.2 Octaveによる精度保証方式
  7.6.3 Scilabによる精度保証方式
 7.7 固有値の精度保証

8. 非線形方程式の数値解はどこまで正しいか
 8.1 区間演算の実装
  8.1.1 区間演算
  8.1.2 Scilab上に区間オブジェクトを実装する
 8.2 ニュートン法とクラフチック法
  8.2.1 ニュートン法のプログラム
  8.2.2 クラフチック法のプログラム

9. LAPACKを使いこなそう
 9.1 LAPACKとBLASについて
  9.1.1 BLASの構成
  9.1.2 LAPACKの構成
  9.1.3 LAPACKを用いることによる高速な演算の実現
 9.2 LAPACKのインストール
  9.2.1 分割コンパイル
  9.2.2 ライブラリ
  9.2.3 LAPACKのインストール
  9.2.4 メイク
  9.2.5 CLAPACKのコンパイル
 9.3 LAPACKを使った数値計算
 9.4 Octaveのソースを読む
  9.4.1 Octaveのソースの構成
  9.4.2 ディレクトリlibcruft

10. Calcでオブジェクト指向有理数計算
 10.1 Calcの使い方
  10.1.1 電卓的な使い方
  10.1.2 関数の書き方
 10.2 オブジェクト指向プログラミング

付録
引用・参考文献
索引  

amazonレビュー