Surface Science and Solid State Theory Laboratory

@surface


Archive for the ‘数値計算’


数値計算2013/6/11 0

Posted on 6月 10, 2013 by kimi

6月11日分の講義資料をアップロードしておきました。今回は連立一次方程式の数値解法です。数学(線形代数)の講義で吐き出し法などをやるのが定番ですが、うちの応用数学I(線形代数)では一切そういった具体的な解法については触れていません。これは行列式の計算とそれ以外の行(列)変形とを混同しないためで、案の定講義をちゃんと聴いて余因子をつかって逆行列を計算している人はほとんど合格ですが、教科書だけを読んで吐き出し法を使って逆行列を求めようとしたいる人でちゃんと逆行列を計算できた人はいません。(つまり、合格もできてない)

はっきり言って、吐き出し法やガウス・ジョルダン法などの解法は所詮答えを求めるためだけの計算法でしかなく、計算間違いをしてもいったいどこで間違えたのかさっぱりわからないと言うのがその理由です。そこで大量の退屈な計算を文句も言わずにしかも計算間違いをすることなく行ってくれる計算機の出番です。

ところが、吐き出し法やガウス・ジョルダン法は昔から知られており、どの教科書にも載っていますが、変数の数が増えるとまともな時間では計算が終了しないことが起こります。そこでこの講義ではもっともアルゴリズムが簡単でしかも利用価値の高いガウス・ザイデル法について主に時間を割くことにします。個別のレポート課題にはしませんが是非自分でもコーディングして実行してみてください。

数値計算2013/6/4 0

Posted on 6月 03, 2013 by kimi

6月4日分の講義資料をアップロードしておきました。今回は数値積分法です。嘗てはガウス積分法などの凝った技法も紹介していましたが、計算機のメモリ容量とCPUの演算速度とに不自由しなくなった今となっては、台形公式などのシンプルな方法を使いこなし、どのように精度を上げていくかを理解しておく方が有用です。特に台形公式のプログラムについては新しいプログラミング言語を習得したときなどにすぐに書けるようにアルゴリズムを体に刻み込んでおいてください。今回もまた、レポートの課題が出ます。いやー、我ながら鬼だねえ。

数値計算2013/5/28 0

Posted on 5月 27, 2013 by kimi

5月28日分の講義資料をアップロードしておきました。今回は代数方程式の数値解法について講義します。中学校のころから一次方程式や二次方程式、三角方程式や対数方程式となじみ深い代数方程式ですが、これまで扱ってきたものは所詮手で解ける、すなわち解を《知ってる》ものだけを扱ってきました。しかしながら実際にはほとんどの方程式はその解を数式で表現できません。もう少し正確には方程式の解のかたちで必要な量が定義されていると言ってもいいでしょう。今回は、そのような方程式を計算機を使って解く方法について説明します。今回もまた、レポートの課題が出ます。締切設定が他の講義のレポートとはちょっと違いますから必ず出席してください。

数値計算2013/5/14 0

Posted on 5月 20, 2013 by kimi

5月21日分の講義資料をアップロードしておきました。

前回は結構積み残しがあったので、今回はそいつらを片付けた後、LCR回路の過渡現象を例にとり関数の計算や数値微分について説明します。簡単におさらいはしますが、この講義はあくまで数値計算法の講義で電気回路の講義ではありませんから各自電気回路の教科書を掘り起こして「LCR直列回路の過渡現象」の項をよく復習しておいてください。この例は今後もよく使います。

また、初回のレポート課題も出ます。問題については既にリンクされていますので目を通しておいてください。同時にレポートの書き方についても説明しますので必ず出席してください。

数値計算2013/5/14 0

Posted on 5月 13, 2013 by kimi

5月14日分の講義資料をアップロードしておきました。今回はc言語の復習の最後として関数(外部手続)について話をしたあと、「数の表現と誤差」と「単位と次元」について話をします。

プログラミング言語の変数の概念を理解するためには、

  • 変数
  • 変数名
  • 変数の記号
  • 変数の値

を混乱なく使いこなすことが重要です。

特に物理学、電気・電子回路、制御工学、など数学を多用する科目では、物理量、物理量の名前、物理量の記号、物理量の値などがしばしば同一の文字記号(代数/変数)で表されるなど混乱を誘いがちで、尚かつ意図的にその混乱を利用していろいろな概念を見導き出したりすることまであります。こういうことを意識しながらプログラムを作成するようにしてみてください。

数値計算2013/5/7 0

Posted on 5月 02, 2013 by kimi

5/7日分の講義資料を用意しておきました。c言語の復習第三回目です。やっぱりスケジュールが遅れていますが、今回は「アルゴリズムをどう表現するか」について数値計算でよく使われる総和やベクトルの内積、行列の積などの具体例をもちいて説明します。資料にはいけるかどうかわかりませんが「関数」の部分を用意しておきました。もし、今回やれなかった場合はc言語の復習第四回目を5/14にもやることにします。

数値計算2013/4/23 0

Posted on 4月 22, 2013 by kimi

4/23日分の講義資料を用意しておきました。c言語の復習第二回目です。ちょっとスケジュールが遅れていますが、今回は「変数」と「「配列」についてお話をします。構造体を使わないことにするとこの変数と配列とがデータ構造の全てです。(c言語には定数というものがないので)

ぜひ、頭の中にメモリー空間とそこに配置された変数(配列)のイメージを常に持てるようになってください。

数値計算2013/4/16 0

Posted on 4月 15, 2013 by kimi

4/16日分の講義資料を用意しておきました。今週からおよそ三週間かけてc言語の復習をしていきます。これまで「コンピュータ実習」、「プログラミング基礎」で一通りc言語を学習してきたはずですが、プログラミング言語は使ってないとすぐに忘れてしまいます。実際のソフトウェア開発の現場ではc++やjavaの方が重要になってきていますが、電気/電子/情報/通信/制御といった分野においてc言語は《教養》といってよいプログラミング言語です。しっかり身につけておきましょう。

c言語を習得する上で一番のネックになっているのは「ポインタ」と「構造体」です。たしかにこれらの概念はいろいろ厄介な実装と結びついているので初学者には混乱の元なのですが、計算機にとってメモリというものがどういうものであるかを想像できればアドレスとアドレス変数の概念は難しくはないはずです。その部分がしっかり理解できていればポインタのポインタを引数にして関数のポインタをかえす関数へのポインタみたいなパズルは解けなくてもかまいません。また、構造体はc++やjavaなどオブジェクト指向言語を使って行く上で重要な概念ですが、オブジェクト指向言語であればcよりもっとコンパクトにそれらを扱う事ができるます。実際問題、アルゴリズムを学修するだけならポインタや構造体は必要ありませんし、数値計算法のデモンストレーション程度ならポインタや構造体無しでプログラム作成が可能です。そこでこの講義では「数値計算のためのc言語」と称してc言語の文法の中でも単純なものだけに限定して利用していく方法をお話しすることにします。

数値計算2013/4/8 0

Posted on 4月 08, 2013 by kimi

昨年度の途中まではここには講義関係の業務連絡を主に書いていましたが、最近はTwitterのログを流し込んでいて見づらくなってしまいました。できるだけログそのままではなくて「呟き」の解説をして行こうとは思うのですが、それは追々。

今学期もこのサイトで講義資料の配布のアナウンスをします。この前期は主に「数値計算」ですが、既に4月8日分の講義資料をアップロードしておきました。4月8日は、この講義の概要をお話します。3年次の専門選択科目ですから、初回の講義を聴いて履修するかどうか決めてください。実験並みかそれ以上の分量のレポートが課せられますので、毎年脱落者も結構出ます。登録単位数に余裕の無い人はよく考えて履修申請をするように。

数値計算2012/7/17 0

Posted on 7月 16, 2012 by kimi

7月17日分の講義資料をアップロードしておきました。最終回は乱数とそれを利用したモンテカルロ法について説明します。

乱数を使ったシミュレーションは、数学的に解くのが困難な問題に対する最終兵器です。同時に最終レポートの問題に詰まった時の最終兵器でもあります。健闘を祈ります。(祈ってどうにかなるもんなのだろうか?)



↑ Top