Next:
1.1 はじめに
C 言語で数値計算プログラミング
桂田 祐史
Date:
2003年6月9日
1.1 はじめに
C の勉強の仕方
どういうプログラムに C 言語を用いるべきか
目次
1. コンパイル、実行の仕方
1.1 はじめに
1.2 とにかくコンパイル
1.3 実行形式の名前の指定 (
-o
オプション)
一口メモ
1.4 システムのライブラリィをリンクする (
-l
オプション)
1.5 複数のソース・ファイルからなるプログラムのコンパイル&リンク
1.6 cco コマンド
1.7
-I
,
-L
,
-R
1.8 便利なオプション -- 最適化
-O
, 警告レベルをあげる
-W -Wall
1.9 -g
1.10 -pg
1.11 -E
1.12 -S
1.13 GNU Emacs の利用
1.13.1 原始的なプログラム書き
1.13.2 compile コマンド
1.13.3 GNU Emacs とタグ・ジャンプ
2. 数値計算のための C プログラミング入門
2.1 イントロ -- サンプル・プログラムによる勉強
2.1.1 最初のプログラム
2.1.2 if 文と goto 文
2.2 数列
2.2.1 for ループと数列
2.2.2 極限の推定
2.3 級数の和
2.3.1 簡単な例
2.3.2 Taylor 級数の計算
の近似計算
の近似計算
2.4 方程式を解く
2.4.1 二分法
2.4.2 Newton 法
2.5 常微分方程式の初期値問題
2.5.1 Euler 法
2.5.2 Runge-Ketta 法
3. グラフを描こう (1)
3.1 fplot ライブラリィ, ccx コマンド, f77x コマンド
3.2 関数・サブルーチン一覧
3.3 図の印刷法
3.4 例題による解説
3.4.1
変数関数のグラフ
3.4.2 簡単な動画
3.5 サンプル・プログラム (解説抜き)
3.5.1 定数係数線型常微分方程式の相図
3.5.2 熱方程式の初期値境界値問題の可視化
3.6 ccx, f77x の正体
3.7 T
E
X への取り込み
3.8 ccg の関数 fsymbol() の実現法
4. 数値計算プログラミング
5. グラフを描こう (2) GLSC
5.1 はじめに -- GLSC とは
glscwin -- Windows 版 GLSC
5.2 6701 号室では?
5.3 GLSC のサンプル・プログラム
5.3.1 何をするプログラムか
5.3.2 ソースプログラム
draw-graph.c
5.3.3 読んでみよう
5.3.3.1 どれが GLSC の命令か?
5.3.3.2 ウィンドウのサイズ
5.3.3.3 出力先
5.3.3.4 座標系の定義
5.3.3.5 線種、文字種の定義
5.3.3.6 定義しておいた座標系、線種、文字の呼び出し
5.3.3.7 線分を描く、グラフを描く
5.3.3.8 マウスの入力待ち
5.3.3.9 終了 (ウィンドウの削除)
5.4 GLSC+ について
5.4.1 その目的
5.4.2 新しく導入した関数
5.4.3 サンプル・プログラム・ソース
.1 よく使う関数の説明
.2 PostScript への変換 (g_out に関するノウハウ)
.3 桂田研学生向け
.4 Cygwin+XFree86 環境での利用
A. 常微分方程式
B. 常微分方程式の初期値問題 -- とにかく始めてみよう
B.1 はじめに
B.2 目的とする問題
B.3 離散変数法
B.4 Euler 法
B.5 Runge-Kutta 法
B.6 漸化式のプログラミング
B.6.1
が実数値の場合
B.6.2
がベクトル値の場合
B.7 プログラミング課題
C. 常微分方程式の初期値問題の数値解法
C.1 はじめに
C.1.1 常微分方程式って何だったっけ -- 復習
C.1.2 これからの目標
C.2 数値解法(1)
C.2.1 問題の設定と数値解法の基本原理
C.2.2 Euler(オイラー)法の紹介
C.2.3 プログラミングの仕方
C.2.4 例題
C.2.5 Euler 法の収束の速さ
C.3 Runge-Kutta (ルンゲ-クッタ)法
C.4 対数グラフに関するメモ
D. 定数係数線形常微分方程式
D.1 問題の説明 -- 定数係数線形常微分方程式
D.2 例題プログラムによる実験
D.2.1 例題プログラムの使い方
D.2.2 解説
D.3 補足 -- 紙と鉛筆で解く方法
D.3.1 定数係数線形常微分方程式の解の公式, 行列の指数関数
D.3.2
の場合の
,
E. 力学系とリミット・サイクル
E.1 力学系と Poincare のリミット・サイクル
E.1.1 力学系
E.1.2 平衡点と線形化
E.1.3 リミット・サイクル
E.2 追加の問題
E.3 プログラム
E.3.1 dynamics.f
E.3.2 dynamics.c
E.4 参考文献
参考文献
A. ヒント集
A.1 インデンテーション
A.1.1 GNU indent
A.2 参考になる文書
B. がらくた箱
B.1 参考書
B.2 C 言語の種類
B.3 UNIX 上の C コンパイラーの使い方
B.4 数値データの種類、変数宣言
B.5 数の型とのおつきあい
B.5.1 定数にも型がある
B.5.2 式の中の型変換について
B.5.3 int の割算に注意
B.6 数学関数の使い方
B.7 配列の使い方
B.7.1 添字は 0 から
B.7.2 配列の大きさは整定数
B.8 ANSI C のプロトタイプ宣言とは?
B.9 コンパイラーなどのエラーメッセージを読むための単語帳
B.10 ``Segmentation fault'', ``Bus error'' って何ですか?
B.11 数学定数どうしよう?
B.12 C で負の添字を使う方法
B.13 scanf() を使うのは邪道だと言われちゃった
B.14 ポインターについてどれだけ知ればいいですか?
B.15 行列はどうする?
B.15.1 はじめに
B.15.2 1 次元配列の方法
B.15.3 ポインター配列の方法
B.15.4 二つの方法の優劣
B.15.5 サンプル・プログラム
B.16 FORTRAN プログラムを C に書き換える
B.16.1 プログラムの構成
B.16.2 定数・変数の宣言
B.16.3 式
B.17 NaN って何ですか
B.18 コンパイルとは何ですか
B.19 NEmacs 虎の巻 @(#) Oct 4 1992
B.19.1 NEmacs 入門編
B.19.2 NEmacs 初級編
C. Fortran と一緒に使う
C.1 UNIX における C と Fortran の併用
C.2 プログラムの書き方
C.2.1 副プログラムの名前について
C.2.2 引数について
C.3 配列
C.3.1 プログラム例
C.4 コンパイルの仕方
C.5 LAPACK
D. C++ を使ってみよう
D.1 C++ について私が考えること
D.1.1 数学屋にとって面白く有望である
D.1.2 変化が速すぎる
D.1.3 printf() ファミリーの代替物がないぞ!
D.2 簡単な入門
D.2.1 printf() の代りに cout と insertion 演算子
<<
D.2.2
cout.width()
とインサーター
setw()
D.2.3 左詰め, 右詰め
D.2.4 フラッシュ
D.2.5 8進数, 10進数, 16進数
D.2.6 浮動小数点数の書式指定 (1)
D.2.7 浮動小数点数の書式指定 (2) 安直な
form()
D.2.8 文字列
D.2.9 sprintf() の代りに
D.2.10 sscanf() の代りに
D.3 vector
D.4 ファイル入出力
D.5 数学関数
D.6 複素数の扱い
D.7 new と delete … 動的メモリー確保
D.8 C で書かれたライブラリィとのリンク
D.9 書式付き出力
D.10 クラス定義についての注意
D.10.1 デフォールト・コンストラクター
D.10.2 コピー・コンストラクター
D.10.3 代入演算子
D.11 valarray
D.12 注目しているソフトウェア
D.12.1 FreeFEM
D.12.2 Blitz
D.12.3 MATPACK++
D.13 URL
D.14 参考文献
参考文献
E. Java もやってみよう
この文書について...
Next:
1.1 はじめに
Masashi Katsurada
平成18年4月28日