お知らせ: なし.
このフォルダ .

講義(予定)

  1. 10/05. 入門 1,2章. 実行環境の構築.
  2. 10/12. 3章 graphics, 関数.
  3. 10/19. 4章 y=x^2-a の Newton 法. パラメータ3次曲線を描く関数 (Bezier).
  4. 10/26. ドリルの紹介, 制御構造 if. command line.
  5. 11/2. for の多重ループ続き(例 Hasseの定理). 3章 計算機の構造, 16進数, マシン語, メモリ
  6. 11/09. 6章 Newton 法と2分法. [今回は機器の問題により語尾の音量が自動的に下がってる部分があります. 必要に応じて補足します.],
  7. 11/16. 9章 常微分方程式の数値解.
    11/23 は祝日で休みです.
  8. 11/30. 7章 互除法と計算量. 12/7 分にある行列とベクトルもやる予定.
    1. 計算量とは, 素因数分解を例に (youtube), 黒板
    2. 一次不定方程式を再帰で解く. gcd計算の計算量. (youtube), 黒板
    3. Q and A
  9. 12/7. 8章 関数, 12章 再帰呼出しとstack.
    1. 行列とベクトル. 関数よびだし, 局所変数と大域変数 (youtube), 黒板
    2. 再帰呼び出しと stack (youtube), 黒板
  10. 12/14. 24章 asir から C 言語へ.
    1. AsirからC言語へ (youtube). 黒板
    2. C言語で簡易graphics --- glib4.c (youtube). 黒板
    3. glib3.rr から glib4.c への例(続き) (youtube). 黒板
    4. glib4.c, glib4.h, sample1.c, sample2.c, circle-sample2.rr をダウンロード (nsum.c, nsum2.c, power.c, power2.c, bezier2.c もここにあり).
    5. circle-sample2.rr, sample2.c の PDF
    6. dame1.c, dame1.rr
  11. 12/21. 25章 文字コード, ファイルの読み書き. ファイルは 1byte の列.
    1. 文字コード, char型, unsigned char型, 1byteデータ [youtube], 黒板
    2. 1byteの数列としてのファイル, C言語のファイルI/O [youtube], 黒板
    3. Q and A
  12. 01/5(火曜日, 月曜振替, 講義はありません. 下記のビデオを自習してください. 次回に質問などしてください.) 27章 音ファイルの生成
    1. wave ファイルの生成の基礎 [youtube], 黒板 , genwav.c, genwav0.c, graphwave.c などは ドリル 2020, 掲載プログラム にあり.
    2. wave ファイルの生成のための関数 [youtube], 黒板 .
    3. 参考: MacOS に cc, emacs, X11 をインストールする (2020-12-14-mac-cc).
    4. 参考: Fourier展開と音 .
  13. 01/13(水曜日,月曜振替). 26章 画像ファイルの生成
    1. 画像BMPファイルの生成(C言語) [youtube], 黒板 .
    2. サンプルプログラムを PDF で読む
    3. Q and A
  14. 01/18. Report 3 のサンプルプログラムの細部を理解しよう.
    1. Report 3 のためのC言語の基礎 A [youtube], 黒板 .
    2. Report 3 のためのC言語の基礎 B [youtube], 黒板 .
    3. 解説プログラムのダウンロード
    4. Q and A
  15. 01/25. 行列の LU 分解, 帯行列. 境界値問題.
    1. 行列計算1(C言語版) [youtube], 黒板 .
    2. 行列計算2(C言語版) LU分解 [youtube], 黒板 .
    3. プログラム
    4. 参考: Strassen algorithm , 行列の積のアルゴリズム , 数学的計算の計算量のまとめ .
  16. 2/1. なし.
  17. 2/8. レポート発表の予備日.

参考資料集

  1. usb memory でなくダウンロードの場合
    1. ここ に接続 (仮想マシンの詳しい違いはファイル install.txt を参照)
      • Windows の場合: VM-small-mathlibre-2019-for-dist-v2.zip をダウンロード.
      • MacOS の場合: mathlibre-2019-virtualbox3.zip または mathlibre-2019-virtualbox.zip または 2019vm/mathlibre-2019-virtualbox5-6.10-guest-additions.zip (virtual box 6.1.10 専用ですが, guest additions があらかじめ入ってます) をダウンロード.
    2. Windows および Mac 共通: これ をダウンロード (約4G あります).
  2. 数学の予備知識など: ここ
  3. テキスト
  4. 局所変数がスタックでどのように実現されているか? (開始より 4:50--7:00, youtube, quiz 対応)
  5. Risa/Asir マニュアルなど 1. 2 がマニュアル. 数学関係の関数はこちらを読む. coef, deg, diff, red, random, pari(nextprime,100), type, fctr, newmat, newvect, nd_gr, base_replace, matrix_matrix_to_list, matrix_list_to_matrix などが基本.
  6. 8080 コード表 (講義専用, 要パスワード)
  7. 2020年講義のプログラム asir編.
  8. 2020年講義のプログラム , C言語編 (glib4.c glib4.h, sample2.c sample1.c はこちら). 下記のドリル2020掲載プログラムも参照.
  9. Risa/Asir ドリル2020 掲載プログラム
  10. MathLibre 仮想マシン配布ページ.
  11. Risa/Asir 配布ページ , Risa/Asir のみのダウンロード. マニュアル.

実習課題

  1. 10/05: 実習環境の設定. 講義ビデオ中のソフトウエアの実行デモをみて, (全部)自分でやってみる. うまくいかないところをグループで相談. デモをすこし変更したものを作成してグループで発表. 演習ノートの形式
  2. 10/12: インストールトラブルの相談の続き. テキストの円を描くプログラムを試す. これを元に, 四角形や三角形, 2次関数, 2次関数を回転したもの, など図形を描く"関数"を作る. グループで相談, できたところまで発表.
  3. 10/19: 前回の Q and A を見てさまざな色を使えるようにする. 平方根を求める関数を作る. Bezier 曲線を利用して図形を描く関数を増やす. レポート1作成.
  4. 10/26: コマンドラインインタフェースで asir を使ってみる. コマンドラインから今まで作成したプログラムを load コマンドで実行してみる. Risa/Asirドリルの2章を読んで, ls コマンドなど unix シェルのコマンドを覚える(ネットで検索すると詳しい解説いろいろあり). レポート1作成. if 等もレポート1に取り入れる. 時間があれば x^2+y^2=z^2 の解を列挙するプログラムの高速化をはかる, Taylor展開やFourier展開するプログラムを試す, など.
  5. 11/2, 11/9, レポート1発表会. 一人2分以上, 4分以内. (発表会の回は実習レポートの提出は不要.)
  6. 11/16: さまざまな常微分方程式の数値解を求めてみる. たとえば (1) $y'=1-y^2$. (2) $y''- c y = a(t)$ (強制振動の方程式, 定数 $c$ や外力の関数 $a(t)$ を変える). (3) 次の方程式の $2 \times 2$ 行列 $A$ の固有値により解はどのように変わるか?
    $\frac{d}{dt} \pmatrix{ y_1 \cr y_2 \cr} = A \pmatrix{ y_1 \cr y_2 \cr}$
    (4) Lorentz 方程式の軌道の様子(まわる回数など)を初期値を変えていろいろ調べる.
  7. 11/30: 行列, ベクトルの計算を試す. 素因数分解と gcd 計算の実行時間の差を調べグラフにしてみたりして計算量 $O(m)$ と 計算量 $O(2^m)$ の差を実感する. 一次不定方程式 $ax+by={\rm gcd}(a,b)$ の整数解 $x, y$ を求める.
  8. 12/14: glib4.c, glib4.h, sample2.c, sample1.c をダウンロードして実行してみる. sample1.c の glib_draw() を適宜変更して glib3.rr と同様に使えるようにする.
  9. 12/21: 前回の続き. glib_draw() にいろいろ書いてみる. 適当なテキストファイルを dump してみる(unsigned char 型で読み込み, 16進数で表示し, 文字コード表に従って格納されていることを確かめる). 逆に, たとえば "おはよう" のUTF-8文字コードを調べ, 講義で説明したプログラムを利用して "おはよう" と書いてあるテキストファイルを作成してみる.
  10. 1/13: 音, 画像を生成するサンプルプログラムを少し変更して動かしてみる.
  11. 1/18: レポート3の glib4.c を使う描画. 本日の説明のように小さいプログラムを書いてみて文法の不明点を明らかにする 方法を習得する. printf の使い方にも習熟しよう([printf 書式] で検索).

レポート

  1. 1回目: 図, 絵を描く. "関数" を使うこと. 11/02 月曜日(メールで提出).
    (1) 仕組みの解説, 画面コピーなどの PDF ファイルなど, (2) 実行できる形式でプログラム(*.rr ファイルなど). 以上 (1), (2) を添付.
    件名は半角で keisan-1. 宛先は beef の講義ページに記載.
  2. 2回目: 数学アプリを作成する. 関数の形で呼び出せるようにする. 提出日: 12/7 月曜日.
    たとえば, ドリル p.75, 問題 6.9 であれば
     solve_cubic(x^3-x-1) 
    の呼び出しで解を求めるようにする.
  3. 3回目: (a) レポート1で作成した図を glib4.c を利用してC言語で書く. 図は簡略化してもよい. (b) .bmp による画像か .wav による音を穴埋め式のプログラム例をもとに作成する. 提出日: 1/25 ((a) か (b) のどちらか一方でもよい. 残りは 2/8 月曜日まで). プログラム, 仕上がりの画像や音も添付してください.
  4. 選択問題集. Asir ドリル掲載の問題を解く. 演習課題の問題をじぶんなりに発展させて レポートとしてまとめる. 期限: 2/12 金曜日まで.