NumI2009

提供:応数wiki
ナビゲーションに移動 検索に移動

修正してヒントを付け加えてある. (でも新たに間違いを発見→このページのノートを見てください)

  • 6回目 課題4、5を復習した.

--- ここまでで、変数の宣言、do文、if文, gnuplotでのプロットの仕方(2次元、3次元)を まなんだことになる。

  • 7回目:小テスト。+alpha。

3次元プロット、偏微分。

  • 8回目:

常微分方程式の解き方.

  • 9回目:

微分方程式,常微分方程式の解き方.

  • 10: 線形代数。その1。 配列の使いかたを学ぶ。

ベクトルを回転、ベクトルの外積を図示するなど。 無限小回転をくりかえして回転させていく。

  • 11:10を解説し復習した。
  • 12(2010,1月12日): 二次元での回転の課題をだした。問1をやった。問2はまだ。
  • 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 にあるので,ダウンロードしてノートパソコンで読めるようにしておいてください。