計算情報数学, 2021

修正と補足 , Video の板書の修正等は "黒板" に記載しています.
科目番号: 1S654

mathlibre-2019

スクリーンがロックされてパスワードをもとめられたら? ユーザ名は user, パスワードは live です.
質問には screen shot も添付 screen shot のとり方

講義資料

  1. 4/15 (1,2)
  2. 4/22 (3,4)
  3. 5/6 (5,6) 整数計算 (bignum)
  4. 5/13 (7,8) 2D Visualization(可視化)
  5. 5/20 (9,10) 3D Visualization
  6. 5/27 (11,12) sage と python, class. ODE library, optimization library の紹介.
  7. 6/3 (13,14) binary splitting, bit burst アルゴリズム.
  8. On-demand です. (15).

レポート (report)

  1. レポート提出先: report-takayama@math.kobe-u.ac.jp
  2. 必修と選択をあわせて3レポート以上. 提出物の最終締切は 6/13.
  3. レポート1締め切り 5月13日(木曜日)まで.
  4. レポート 1 (必修).
    (1) Prog1 フォルダ にある, c-text1.txt, c-text2.txt, c-text3.txt の中で適当なものを解読しなさい(click表示でなく, downloadすること). (2) 解読に用いた方法(mod 計算, C のプログラム decrypt-0.c mydump.c, 統計システム R の関数, ascii コード表, unix のコマンド, 解読の方針)を解説せよ. (3) 何が書いてあるか? も関係の参考文献も調べて解説.
    レポート作成用参考動画 [youtube].
  5. レポート2以降の選択レポートの提出期限は 6/13.
  6. レポート 2 (選択).
    Prog3 フォルダ にあるプログラムに機能を追加. 追加する機能の例: プログラムの仕組みがわかるように途中経過を print する, 負の数を扱えるようにする, 引き算や掛け算もできるようにする, 16進数の入力や出力をできるようにする, など.
  7. レポート 3 (選択).
    数の掛け算を高速におこなう FFT のアルゴリズムを説明. A.Emerencia による解説 (PDF) の一部の翻訳でもよい.
  8. レポート 4 (選択).
    整数の割り算を行うアルゴリズムを調べる.
  9. レポート 5 (選択).
    適当な関数のグラフを正確に書いてみる (C言語とgnuplotで, 5/13のプログラムを参考に).
  10. レポート 6 (選択).
    [sagemath plot] や [sagemath contour plot] や [sagemath plot3d] や [sagemath parametric plot] をキーワードとして検索して sage の graphic 機能を調べる. この機能を用いてグラフや等高線グラフを書いてみる(3つ以上, なるべく数学的に興味深いもの).
  11. レポート 7 (選択).
    gnuplot-ex.c (5/13) を解読する. プログラムは a=1 の時の微分不能点の検出をしているだけ. できたら a が一般の時の微分不能点の検出を加える.
  12. レポート 8 (選択).
    3次の Chebyshev 多項式は $f(x)=4 x^3-3x$ である. $f(x)$ の合成関数 $f(f(x))$, $f(f(f(x)))$, ... のグラフを $x \in [-1,1]$ でなるべく正確に描け. 参考: sage では
    f=chebyshev_T(3,x)
    plot(f(f(f(x))),-1,1)
    
    参考: asir で極値をとる x の候補を求める.
    def f(X) {  return 4*X^3-3*X; }
    F=f(f(f(x)));
    pari(roots,diff(F,x));
    
  13. レポート 9 (選択).
    GeoGebra でなにか作品を作る.
  14. レポート 10 (選択).
    OpenGL を使ってみる(gl-saddle.c を利用してグラフを書くなど), または Ray tracing のアルゴリズムを解説する.
  15. レポート 11 (選択).
    emacs の設定ファイル .emacs.d/init.el などの書き方についていろいろ調べる. 形式: ... をやりたいときは ... と書いておく (3つ以上).
  16. レポート 12 (選択).
    特異点をもつ多項式に対して Milnor 数を計算してみる (3つ以上). 特異点を graphic で表示.
  17. レポート 13 (選択).
    mandelbrot.c を参考に ジュリア集合[検索]を描画してみる.
  18. レポート 14 (選択).
    常微分方程式の数値近似解を計算してみる(3つ以上). 例: 特殊関数(三角関数, Bessel, Legendre, Airy, 楕円関数, ...)で書ける厳密解との比較, Lotka-Voltera系, Stiff な方程式, Lorentz方程式, van der pol 方程式, パンルべ方程式, 制限3体問題, ...
  19. レポート 15 (選択).
    python の入門書を読んでなにかプログラムを書いてみる. scipy も適宜活用.
  20. レポート 16 (選択).
    常微分方程式の数値解法など, 数値解法のアルゴリズムを解説する.
  21. レポート 17 (選択).
    binary splitting, bit burst アルゴリズムとはどのようなアルゴリズムか?
  22. レポート 18 (選択).
    $\arctan x$ を Taylor 展開の $m$ 次の項までの展開で近似する. $x=1$ の時のこの近似と $\arctan 1$ の値の誤差を評価せよ. sagemath に組み込まれた $4*\arctan 1$ の高精度計算の速度と自作の Taylor 展開での計算の速度を比較してみる. (または $\cos x$ の場合に同じことを試みる. こちらの方がやさしい.)
  23. レポート 19 (選択).
    .emacs.d/init.el をいろいろ変更して自分にとって快適に. apt install を試す.

実習報告

  1. 本日実習したこと, 失敗談, 疑問点, などをメールで報告. breakout room の他のメンバーがプレゼンした内容も.

参考資料

  1. SageMathCell , online 版の sage
  2. 佐々木(信州大学), Python と SageMath
  3. 2021.05.20. algebraic surface, example .
  4. 2021.05.20. MathLibre, KnoppixMath アーカイブ
  5. 2021.05.20. Mac User のための OpenGL の始め方 .
    例:
    gcc -framework GLUT -framework OpenGL gl-saddle.c
    
    なお gl-saddle.c の
    #include <GL/glut.h> 
    
    #include <GLUT/glut.h> 
    
    と書き換えておく必要あり.
  6. 2021.05.20 singsurf.org , 特異点のある代数曲面の例など (このページをレポートで紹介してくれてありがとうございます).
  7. 2021.05.27. Google Colaboratory (jupyter/python 相当のものが online で使える.
  8. 2021.05.27. E.Hailer, P.Norsett, G.Wanner, 常微分方程式の数値解法 I, II , (日本語訳). W.Press 他, Numerical Recipes in C , (1版の日本語訳, 英語版は3版となってます).