NumI2009
- 数値計算I(2009後期)受講前の準備:最初の回までにインストールとテストが必要です.
修正してヒントを付け加えてある. (でも新たに間違いを発見→このページのノートを見てください)
- 6回目 課題4、5を復習した.
--- ここまでで、変数の宣言、do文、if文, gnuplotでのプロットの仕方(2次元、3次元)を まなんだことになる。
- 7回目:小テスト。+alpha。
3次元プロット、偏微分。
- 8回目:
常微分方程式の解き方.
- 9回目:
微分方程式,常微分方程式の解き方.
- 10: 線形代数。その1。 配列の使いかたを学ぶ。
ベクトルを回転、ベクトルの外積を図示するなど。 無限小回転をくりかえして回転させていく。
- 11:10を解説し復習した。
- 12(2010,1月12日): 二次元での回転の課題をだした。問1をやった。問2はまだ。
- 13(2010,1月19日):小テストを解説しながら行った。講義13の小テストの答え。
- 14(2010,1月26日):小テストを行う。範囲は、ここ
- 15(2010,2月2日):テストを行う
おおしだ中間試験の2[編集]
次の初期値問題の解x(t)を求めよ(tを増やしていって、x=0またはx=2に達するまで)。
<math>\frac{dx}{dt}=0.7x^2-1.7</math> 初期値はt=0で<math>x=1.0</math>
なお<math>\Delta t</math>をいろいろと変えて重ねてみること。
- pythonだと、式をつづけて一気に実行するには;でくぎります。まずはためしに、コンソールでpythonと打ってpythonのインタラクティブモードに入って、
>>>x=1 >>>dx=0.1 >>>x=x+dx;print x
で最後のx=x+dx;print xを何回も実行してみてください.この理屈さえわかれば「カーソルで戻してリターンキーを押しつづける」だけでできます。 (ctrl+Dで終了)。
数値計算の誤差[編集]
数値計算の誤差には二種類ある。離散化誤差discretization errorと丸め誤差round-off error. 下のプログラムでround-off errorがわかる。なぜ、正確な1.111*nにならないのか?
program work4_5 integer n,i,j real:: dd,S,x,y,r,d !real(8):: dd,S,x,y,r,d n=1000000 dd=1.111 do i=1,n S=S+dd enddo write(*,*)S end
3D plot[編集]
gnuplotのsplotで教科書にあるような図をプロットしてみよう.この例はあまりきれいでない。 まず練習。
# data7 # x y z 1 1 1 1.2 3 4 1.3 2.1 1.2 2.3 1 1 2.2 3 4 1.4 2.1 1.2 5.5 12 11. 2.4 2.1 1.2 3.3 3 4.3
をdatファイルとして保存し、gnuplotで、コマンド
splot "dat" with lp
でプロットしてみよ.(このデータはあまりよくない)。 その他、z=1/(x**2+y**2+1)などをまずはプロットしてみてください(プログラムをつくること)。 微積の教科書にある図がかけるはず。
教科書には、Fortran90用に、Fortran-90プログラミング 冨田博之、培風館 を使います.生協に発注してありますが、10月半ばにならないと入荷しません. 当面の必要分はコピーで配布します。また、オンラインバージョンは http://ace.phys.h.kyoto-u.ac.jp/~tomita/education/fortran90/sec0.html にあるので,ダウンロードしてノートパソコンで読めるようにしておいてください。