考察について:皆さんが実習してみての理解(アルゴリズム、プログラム作成)したことをそれぞれ,皆さんの言葉で表現すること。
1)アルゴリズム:擬似乱数の計算とその評価では、統計的な手法が使われた。
2)プログラム:乱数では、ライブラリ関数を使うほかに、自作の擬似乱数関数を作って、評価することもできる。モンテカルロ法では、 繰返し数を増やすことで、πの近似値の精度が上がることが分かる。それを図示すると、収束の傾向がより、良く分かる。
この数値解析・数値計算実習の授業も今回が最後です。理解し、計算が出来ることが目的であるので、皆さんがそれぞれに理解した結果の分かるレポートをアップロードすること。
( 使用中のテキストには, 出ていないので, 以下の参考書を参照します。1のみプリントで配布) 1.戸川隼人, 情報処理入門コース7 数値計算, 岩波書店,1991,pp.113-124 2.鈴木誠道ほか,Cによる数値計算,オーム社,1997,pp.62-63 3.明星大学理工学部数学研究室編, 数学の基礎と応用, 明星大学出版部,1998,pp.48-51 4.小池慎一,Cによる科学技術計算,CQ出版社,1987,pp.295-303
n ×n 行列 Aに対して, Ax = λx, x ≠0 を満たす数λをAの固有値,ベクトルxをλに対する固有ベクトルという。 与えられた行列A の固有値, 固有ベクトルを求める問題を行列の固有値問題という。 [ 直感的に理解するための例] □ 固有振動数( 振動系の解析) Aa=−ω2 a (−ω2 :固有値,a:固有ベクトル) 例 弦の固有振動 □ 主成分分析 例 8.3 主成分分析 □ 線形変換 y=Ax もしも,λがAの固有値で,xがλに対する固有ベクトルであるとすれば,xはこの変換 によって,自分自身のスカラ(λ)倍に移されるようなベクトルである。
性質1〜6までに,数値計算法を理解するのに必要な基本的な性質が要約してある。 性質1 n×n 行列は,一般に n個の固有値を持つ。ただし,いくつかの固有値は重複する場合がある。 性質2 xがAの固有ベクトルならば,その任意スカラー倍αxもAの固有ベクトルになる。 性質3 実対称行列の固有値は実数で,相異なる固有値に対応する固有ベクトルは互いに直交する。 性質4 Mが正則行列ならば,MAM-1はAと同じ固有値を持つ。特にMが直交行列ならば, MAM-T がAと同じ固有値を持つ。 (以下は省略)
原理 2×2の行列の場合 n×nの行列の場合への拡張 M(p行,q列)−コピー 1のp.(1/6)の左下の図参照 計算手順の概要 [1]から[5]までに述べてある。 それを処理手順にしたものが, 1のp.119 の下の部分である。 固有ベクトルの求め方-p.120
プログラム仕様と実行例の解説 p.121 FORTRAN のプログラム例 p.122-123 実行例 p.124 (p.(1/6) の左側) 科学技術計算用に開発され,相当に使われていた。 (ワークステーションやパソコンでは,C言語でのプログラムが多くなったが。) WebでのFORTRANサイトを3つ紹介する。 1.Fortran90プログラミング- 講義ノート。 京都大学総合人間学部基礎科学科 冨田博之 (Tomita Hiroyuki)先生による。 2.Fortran ResQ - 初心者向け解説 北海道大学工学部土木工学科水圏工学講座向けの倉林 弘志先生による。 3.基礎的Fortran文法のまとめ 武蔵工業大学 工学部 情報処理センター 教育用電子掲示板から C言語との比較 演算そのものの記述は,c言語とよく似ている。配列の書きかたは,[ ]でなく( )である。 入出力文なども似ている所はある。2.3 C言語のJacobi法プログラムについて
1)プログラムのモジュール化−これは, 従来のプログラムを利用する。 2)ヤコビ法で, 最大の非対角要素の選択を行い、それについて変換を行う。 3)結果について,いくつかの確認の計算( 検算) をしている。2.4 実習の課題とWebサイトでのレポート提出
実対称行列aを読込み,ヤコビ法で固有値, 固有ベクトルを求め,表示するプログラムを作れ。 (戸川参照) [ 戸川との違い] 最大の非対角要素の選択を行い、それについて変換を行う。 結果について,いくつかの確認の計算( 検算) をしている。 実際には, 例プログラムをコピーして, その空白の部分( 左・右からの乗算) を追加のこと。 (yacobipq.c, データは, 戸川のp.121 の例−4 次−を各自で作成のこと。) 1) 手順を見て, 自分で考えること。 (プログラム例をみるとしても。) ( 単に, 結果を出せば良いのではなく, どうして, そうするのかが分かること。) ( そのためには,ヤコビ法での計算方法とその処理手順を参照する。) 2) レポートのためには,まず, プログラムタイトルの行で自分の名前の表示に変更のこと。 そして、最初の部分に, 考察を追加する。 考察の内容は、 1)固有値と固有ベクトルについて。 2)ヤコビ法のプログラムとその実行結果について プログラムの構造は、どうなっているか 固有値が求まったら、何を検算しているのか?何が分ったのか? 3)FORTRAN言語とC言語の比較など 実行結果を, 最後に付ける。( 小生の実行している分を削除して良い) 3) レポートファイルは、Webページとして編集して、レポート目次からリンクすること。