210 likes | 438 Views
京都大学工学部・材料工学科 西谷滋人. 教育・研究分野での Maple 活用紹介 −材料工学での Maple 利用−. Maple 7 日本語版リリースセミナー 8/2/02 カナダ大使館. 内容. Maple を用いた演習 材料科学コースでの事例 カリキュラムなどの紹介 日常研究での使用例 研究内容の紹介. 利用の手引. 作成法 初版 (1996) は, PM7600 上で MapleVR3+PageMaker 最新版 は, iBook 上で Maple7+LaTeX 利用法 京都大学工学部 材料科学コース演習 京都大学 大型計算機センター講習会
E N D
京都大学工学部・材料工学科 西谷滋人 教育・研究分野でのMaple活用紹介−材料工学でのMaple利用− Maple 7 日本語版リリースセミナー 8/2/02 カナダ大使館
内容 • Mapleを用いた演習 • 材料科学コースでの事例 • カリキュラムなどの紹介 • 日常研究での使用例 • 研究内容の紹介
利用の手引 • 作成法 • 初版(1996)は,PM7600上でMapleVR3+PageMaker • 最新版は,iBook上でMaple7+LaTeX • 利用法 • 京都大学工学部材料科学コース演習 • 京都大学大型計算機センター講習会 • 日常研究
材料工学科の紹介 • 京都大学工学部 物理工学科(250名) • 機械システム学,材料科学,エネルギー理工学,宇宙基礎工学 • 材料科学専攻研究領域 • 金属・セラミックス材料の物性研究,新規材料・プロセスの開発 • 材料設計,熱力学,デバイスプロセス,磁性材料,機械的性質,組織学(熱処理,変態),分光分析,格子欠陥,超電導体
学生の進路 • 大学院進学率,就職(2001-2002)56名が卒業予定 • 大学院34名 • 鉄鋼(4),自動車(6),電気(10),進学(2),その他(12)
電子・原子レベルの研究 機械的性質 電気的性質 相変態 組織制御 分子動力学 モンテカルロ 電子構造計算
カリキュラム • 全学共通 • 基礎情報処理(演習),微分積分学,線形代数学,物理学基礎論,基礎物理化学,図学,電磁気学,確率論,数理統計,無機化学入門,振動・波動論,統計物理学 • 物理工学共通科目 • 計算機数学,計測学,材料力学,工業数学,材料基礎学,固体物理学,応用電磁気学,原子物理学,流体力学基礎 • 材料科学コース • 薄膜材料学,結晶回折学,材料組織学,結晶物性学,材料物理化学,熱および物質移動,エネルギー平衡論,エネルギー・材料熱化学,材料物理化学,統計熱力学,量子無機材料学,固体電子論,材料機能学,材料プロセス学 • 選択必修(物理工学演習,材料科学実験及び演習)
演習内容(I) • 目的:実際に問題を解くことで,専門課程で使う数学になじむ. • 内容: • 教科書の抜き刷りから必要な情報をとりだし,問題を解く. • Mapleの基本操作と理論の基礎を教え,あとは自習. • TA二人と講師とで机間巡視で50名程度を個別指導. • レポート提出.
演習内容(II) • 基本操作 • 演習 • 化学反応式の係数決定(連立方程式の整数解) • トンネル効果(式の変形) • 熱膨張係数の導出(複雑な関数の近似と積分) • 陽電子消滅寿命(連立微分方程式) • Hamiltonian の解(線形代数) • オイラー角(線形代数) • 組成自由エネルギー曲線(連立方程式の数値解) • 減衰振動のフーリエ変換(高速フーリエ変換)
分析 • テキスト通りに打ち込んで結果が出たらおわり. • まわりで遊ぶ愉しみ... • 大学の講義は座学で十分 • 数式の変形はできるが,計算はしない・できない. • 数学恐怖症 • (線形代数,複素関数,微分方程式)単語が出てきただけで引いちゃう. • プログラミング恐怖症 • C言語至上主義(?) • simulated annealing(資料p.26)
simulated annealing(1) • 最適化問題の代表例である,巡回セールスマン問題をsimulated annealing法をもちいて解く. • 巡回セールスマン問題とは,ある街から出発していくつかの街を次々とめぐって元の街に戻ってくる最短の経路を求める問題.
simulated annealing(2) • アルゴリズム • 配置aを仮定しE(a) を求める. • aからすこし違った配置a+δaを作る. • Δ E = E (a+δa)- E (a)を求める. • Δ E < 0なら新たな配置を採用する. • Δ E > 0なら新たな配置をexp(- Δ E /T)の確率で受け入れる. • 手順2以下を適当な回数繰り返す.
simulated annealing(3) • 以下は街の位置をランダムに生成し,表示するMaple scriptです. • restart; with(plots): N_city:=16; Path:=[seq(i,i=1..N_city),1]; Position:=seq([evalf(rand()/10^12),evalf(rand()/10^12)],i=1..N_city): Real_Path:=[seq(Position[Path[i]],i=1..N_city),Position[1]]: PLOT(CURVES(Real_Path)); • 街の間の距離をあらかじめ計算して,2次元の配列に入れておき,配置aから任意に2都市を取りだして入れ替える試行をδaとして上述のアルゴリズムにしたがって最短経路を探すプログラムを作成してください. • No1.mwsへ
日常の研究での使用例(1) • 論文のフォロー:数式処理 • 論文で級数展開して解析的に求めた結果が怪しい.
入力を打ち込むときの一般的なコツ • restart をかける: • 内側から順に入力する: • 長い入力は内側の関数から順に何をしているか確認しながら打ち込む. • 出力してみる: • 関数に値を代入してみる:
日常の研究での使用例(2) • 数値計算の前後データ処理:filter処理(資料p.40) • データを積分したいが,数値積分では誤差が... • sed, awk, perlなどではお手上げ • Mac上で開発して,Unixへ移し,shellの中で利用 • No3.mwsへ
数値計算の前後データ処理: • unix上でfilter処理として使用するスクリプト.maple < FreeE.txt と入力して使用.処理の内容は前述のとおり. • "data1.tmp"にあるデータの1,3列を読み出して,結果は"FreeE.res"に打ち出す. • ------------FreeE.txtの中身------------interface(quiet=true);...writeto("FreeE.res"):printf("Integrated Free Energy: %15.10fB%n",result):writeto(terminal):interface(quiet=false):
日常の研究での使用例(3) • 論文のフォロー:数式処理 • 論文で級数展開して解析的に求めた結果が怪しい. • 数値計算の前後データ処理:filter処理 • データを積分したいが,数値積分では誤差が... • sed, awk, perlなどではお手上げ • Mac上で開発して,Unixへ移し,shellの中で利用 • 結果の視覚化(資料p.43)(No4.mwsへ) • プログラムの雛形作成 • 計算スピードや容量が必要なときはunixで