ユニット提供科目
ユニット提供科目
統計処理やプログラミング言語の基礎知識を持たない学生を対象として、大規模データ解析を行う 為のプログラミング技術の習得を目指す実践科目である。「情報基礎III」という統計計算の入門的 講義科目に対して、この科目は、より高度な実習を行うことにより、より大規模なデータを解析す ることを目指す。「情報基礎III」の実習では、Excelと統計計算に特化したソフトウェアであるRの R言語を学習するのに対して、この授業では、その2つのソフトウェアの使い方について簡単に触 れた後、プログラミング言語Cを用いて、主成分分析などにおいて重要な、対称な大規模疎行列の 最大固有値から数個の固有値とそれに付随する固有ベクトルを計算するプログラムを自らの手で作 成する。本講義の目的の一つに、統計計算の基本的な内容に対する理解を深めることがあげられる。 統計処理がどのように利用されるか概説し、計算機を用いて統計処理を行う方法を解説し実習を行 う。加えて、プログラミング言語Cの知識を持たない学生が、この言語に習熟することで自らのプ ログラミングスキルを高める目的もある。また、計算機の構成とプロセッサアーキテクチャの基礎 知識をもとに、動作速度の点で優れたプログラムを作成するための基本的な手法を解説する。プロ グラミング言語への理解を深めるだけでなく、統計計算というアプリケーションの作成を通して、 さまざまなアプリケーションを作成する状況においても活用できるプログラムの高速化技法につい て習熟することを目的とする。
全14回の予定は、以下の通りである。
ガイダンス
・数値計算と統計計算(3回)
計算科学の重要な手法である数値解析・数値計算の基礎について講述する。2分法やニュートン法 などの基本的な数値計算の内容について学習する。また、線形代数の基礎的な内容を学習した上で、 計算機で統計計算を行う上で重要となるアルゴリズムを 解説する。特に、連立一次方程式の解法であるLU分解、最小二乗法において基礎となるQR分解と 固有値分解について解説する。
連立一次方程式
固有値問題
QR分解
レポート問題
・計算機の構成とプロセッサアーキテクチャの基礎(1回)
計算機の構成とプロセッサアーキテクチャの基礎知識を講義する。 ・C言語の文法とプログラミング技法の解説(3回) プログラミング言語の基礎知識を持たない学生を対象として、C言語の基本的なプログラミング手 法を丁寧に解説する。
・統計処理入門(2回)
統計処理について概説する。その後、統計学の基礎として平均、分散などについて解説した後、回 帰分析、主成分分析等のデータの統計処理について講述する。加えて、Excelと統計ソフトRの実習を行う。
平均・分散・回帰分析
主成分分析・レポート課題
9-1.csv
・統計計算を行うためのC言語によるプログラムの作成(5回)
主成分分析などにおいて重要な対称な大規模疎行列の最大固有値から数個の固有値とそれに付随す る固有ベクトルを計算するプログラムを以下の2種類作成する。
C言語入門
最終課題の説明
(1) 直交化法を利用した複数個の固有値・固有ベクトルの組を逐次的に求めるべき乗法
symm.c
power.c
(2) 同時反復法
simultaneous.c
simultaneous2.c
特になし
全14回の途中に、統計の基礎知識について、その知識を習得しているかを確認するため、レポー ト課題を出題する。さらに、大規模データ解析を行うレベルのC言語のプログラミングスキルを習 得しているかについて、実習レポート課題を通して判断し、成績評価とする。特に、レポート課題 への解答として作成したプログラムが、計算機の構成とプロセッサアーキテクチャの基礎知識をも とに、効率的な動作を行うものかという基準で評価する。講義・実習への出席状況も評価の基準に 加える。
資料が必要な場合には、授業中にプリント等を配布する
木村欣司:金曜・3限目13:00-14:30 kkimur[at]amp.i.kyoto-u.ac.jp 授業時間外で、質問がある場合には、あらかじめ、上記のアドレスにメールをすること。