数値計算講義のサービスプログラム集
このページは, 拙著『数値計算講義』
に関連した演習用のプログラムソースをリストアップしたものです.
プログラムの元になったのは, 実際にお茶の水女子大学の実習で用いたもので
す.
実際の実習では,グラフィックライブラリの Xlib ソケット は
回を追う毎にバージョンアップしたものを用いていましたが,同じ名前の
ファイルを複数ここに置くことはできないので,C 言語用の xgrc.c と
xgrc.h は最後の (最も複雑な) もの一つだけにしています.
そのため,init_ 関数や closex_ 関数などの引数が教科書の
プログラム例の記述より増えているものもあります.それより古い xgrc.c 用
に書かれたものも,引数の個数が異なっていても問題なくコンパイルできます
が,念のため以下に指示したファイルを2010.5.24日に最新の xgrc.c に合わせて
微修正しました.
一部のプログラムの漢字コードが EUC-JP になっていたのを,Cygwin でも
文字化けしないよう JIS (ISO-2022-JP) に修正しました.
コンパイラによっては,漢字インと漢字アウトの計6バイトが追加される結果
正常に動かなくなるものがあります.原因不明のエラーが出たら,
日本語のコメントを次行にまわし,出力メッセージは英語かローマ字に
変えてみてください.
- 第1章
- 第2章
- 第3章
- 第4章
- 第5章
- 第6章
- 第7章
- 第8章
- 第9章
- mandelbrot.f
mandelbrot.c (2010.5.24日改)
- mandelbrotd.f
mandelakko.c
- leaf.f
twig.c (leaf.c への翻訳がまだで,リンク切れしてい
ました.とりあえず 2010.5.13日に別の樹の枝の C プログラムを置いておきました.)
- von_koch.f
von_koch.c (2010.5.24日改)
- xgrc++.cc
xgrc++.h この二つは 2010.5.24 日に更新
しました.
(教科書ではこれらを xgrc.cc 等と記述してい
ましたが,同じディレクトリ内でコンパイルしてもかち合わないよう,
xgrc++.cc 等に改名しました.従って,純正 C++ 式に書かれたプログラム,
例えば julia++.cc で使うときは,ソースに #include "xgrc++.h" と記述し,
g++ -c xgrc++.cc で xgrc++.o を作成しておき,
g++ julia++.cc xgrc++.o -lm -lX11
でコンパイルしてください.
(2010.5 月始めにアップした xgrc++.h は
古い版でした.julia++.cc が最新版を呼び出していたので,こちらを
新しくしました.なので,教科書の説明より init_ の引数が増えています.)
なお.同じ C++ のプログラムでも,ソースで extern C の宣言を使って
xgrc.c の描画函数を呼び出しているものには,xgrc++.cc は使えません.
従って現在のところ,使用例は julia++.cc のみですが,
書き直しは julia++,cc を参照すれば容易にできるでしょう.
- cubic.cc (2010.5.24日改)
- julia.cc (2010.5.24日改)
julia++.cc
(済みません,xgrc++.cc 用のはずが,誤ってこちらも xgrc.c 用になってた
のを 2010.5.24 日に取り替えました.それ以前に置かれていたものは,
実は extern C 宣言して xgrc.c をリンクするようになっていました.)
- 第10章
- 第11章
- 第12章
- 第13章
- 付録 Fortran 90
Cygwin や Linux の配布パッケージに gfortran という Fortran 2003 にも
一部対応したコンパイラが含まれる時代になりましたので,g95 の代わりに
こちらで説明します.
【Fortran 77 の対応する同名プログラムを Fortran 90 に書き直したもの:】
(gfortran は拡張子を見て同じようにコンパイルしてくれます.)
【付録に掲載したもう少し fortran 90 っぽい例:】
- mytype.f90
Numerical Recipies in F90 ライクな定義ファイル
rational_arithmetic.f90
(教科書と違い,サブルーチン集にしたもの)
ratarithtest.f90
(同上のサブルーチンの使用例; 2016.4.20名前が違っていてリンク切れてたのを修正しました)
コンパイルは次の手順で行う:
gfortran -c mytype.f90 -o /dev/null (mytype.mod を作る)
gfortran -c rational_arithmetic.f90 (rational_arithmetic.mod と
rational_arithmetic.o を作る)
gfortran ratarithtest.f90 rational_arithmetic.o (先にコンパイルした
サブルーチンをリンク)
これで実行可能ファイル a.out または a.exe ができます.
- conjgrad.f90