2011 年度後期 計算数学I・同演習の連絡用ページ
2012年2月17日: 全ての課題の受け付けは終了しました.
全ての課題の締め切りは 2月13日(月)とします.
2月6日(月)は, 3, 4限とも演習です. 課題5を終了した人は出席する必要はありません.
課題の提出は cm1@math.kobe-u.ac.jp まで email でお願いします.
他の人のレポートのコピーを送っても大抵バレます. 自分で書いたものを送って下さい.
cfep をダウンロード後, cfep-intel-20100827 をフォルダごとデスクトップに置いてください. 別フォルダに入れると cfep が起動できません.
これは情報基盤センターの制限事項のようなので, 御了承下さい.
- 2011年10月3日
- 2011年10月31日
- 課題1未提出者: 05..015S, 09..003S, 09..018S, 09..025S, 09..026S
- 課題2は p65 問題4.9 です. 〆切は 11月14日 (月)です. (日付を訂正しました.)
- 場合分けのテスト用の多項式です.
- x^3+x+1
- x^3-3*x^2+3*x+1
- x^3+3*x^2+3*x
- x^3-6*x^2+12*x-8 (3重根)
- x^3-2*x-3
- x^3+x^2-2*x+3
- x^3-2*x^2-5*x-1
- x^3-5*x^2+7*x-3 (2重根)
- x^3-2*x^2-4*x+8 (2重根)
- 2011年11月21日
- 課題2未提出者 (課題1提出者のみ): 07..013S, 09..001S, 09..029S, 09..085S
- メールで指摘を受けた方は再提出して下さい.
- 課題3の問題3, 4は, 再帰を使えば大変簡潔に書けます. for, while を使っている人は, 再帰のみで書く方法を考えて下さい.
- 問題3 (p121 問題9.8) の list_append は, 問題2の関数(自分で書いた append) だと思って下さい.
- 余裕のある人向け: 問題4の関数を使って, 任意の数リストを入力として,
冗長成分を省き, 昇順に並べたリストを出力する関数を書け (性能はあまりよくない
ソーティング).
- 2011年11月28日
- 課題2未提出者 : 09..001S, 09..029S, 09..085S
- 再提出が望ましい者: 07..013S, 09..022S, 09..023S,
- 課題3提出者: 07..012S, 09..007S, 09..088S
- 2011年12月5日
- 課題3提出者: 07..012S, 09..002S, 09..004S, 09..005S, 09..006S, 09..007S, 09..008S, 09..009S, 09..017S, 09..019S, 09..021S, 09..024S, 09..027S(一部), 09..028S, 09..081S, 09..085S(一部), 09..088S
- 整数読み出し関数のテストデータ
int_test longint_test
- 課題4について
課題4は, 「暗号化データファイルを解読して, 復号されたデータファイルとして書き出すプログラムを書け」です. 次項の各暗号化ファイルがちゃんと解読できるようなプログラムを書いて下さい. 〆切は 1/16(月)です.
- 課題説明
- 暗号解読問題のデータ
1 2 3
4 5 6
7 8 9
10
11 12 13
14 15 16
17 18 19
20
- ファイル名 (絶対パス) の取得方法
open_file に与えるファイル名は絶対パス (ルートからスタートして, ディレクトリをたどって
目的のファイルに至る経路) で指定する. Finder では拡張子が表示されない場合があるが, 以下の手順で
完全なファイル名を知ることができる.
- Finder から目的ファイルがあるディレクトリを開く.
- 目的のファイルをシングルクリックして, 「ファイル→情報を見る」.
- 「場所」を見ればファイルのおかれたディレクトリ名が分かる.
- 「名前と拡張子」を開けると, 拡張子を含んだ完全な名前が分かる.
- 3, 4 をつないだものがファイルの絶対パス名である.
- 2011年12月5日
- 課題2未提出者 : 09..029S, 09..085S
- 課題3未提出者: 09..001S, 09..023S, 09..029S, 09..030S
- 課題3要再提出者: 個別の学番は挙げませんが, メールで「おかしい」と指摘された方, あるいはまだ全部の解答を提出していない方が該当します.
- 一つの cfep セッションで同時に open できるファイルの数は限られている. 「これ以上 open
できない」というメッセージが出たら, 「再起」ボタン-> Risa/Asir で再起動すること。
- 2011年12月19日
- pari(factor,...) は, 配列の配列を返す。各要素の第0要素が素因数
なので, 例えば F に pari(factor,...) の結果が入っているなら, F[0][0], F[1][0]
が P, Q にあたる.
- 授業では n e ... と並んでいる, と説明したようですが, 正しくは e n ...
です. 配布資料では正しくなっています.
- 2012年1月16日
- ヒープソートの例
- 課題4未提出, 要再提出者(課題3提出者のみ):
07..013S, 08..018S, 09..001S, 09..005S, 09..006S, 09..011S, 09..012S, 09..013S, 09..015S,
09..017S, 09..022S, 09..024S, 09..027S, 09..082S, 09..085S, 09..189W, 09..084E
- 2012年2月6日
- 全ての課題の締め切りは 2月13日(月)とします.
- 課題4未提出者(課題3提出者のみ): 09..084E, 09..001S, 09..022S, 09..030S, 09..082S, 09..085S
- 課題4要再提出者: 09..011S
- 課題5のプログラムの概略: Piv, NPiv を授業で説明したリストとするとき,
- rref に引数 B (AX=B の右辺のベクトルB)を追加する.
- I, P行の入れ替えをしたら, B[I], B[P] も入れ替える. (for の後で)
- I 行を A[I][J] で割ったら, B[I] も A[I][J] で割る. (for の後, A[I][J]=1 の前)
- K 行から I行の A[K][J] 倍を引いたら, B[K] から B[I] の A[K][J] 倍を引く. (内側の for の後, A[K][J]=0 の前)
- 長さ N (=Aの横幅) の零ベクトル X の第 Piv[I] 成分に, はき出し後の B[I] を書いたベクトルが特殊解 (すなわち, X[Piv[I]]=B[I] )
- 長さ N の零ベクトル XJ の第 Piv[I] 成分に, はき出し後の A[I][NPiv[J]] を書き, 第 NPiv[J] 成分を -1 にしたベクトルが, J 番目の基底 (すなわち XJ[Piv[I]] = A[I][NPiv[J]], XJ[NPiv[J]] = -1 )
- Ker A の基底計算の部分をデバッグする場合には, B=0 とするのが便利.
- なるべく大きめ (例えば5x10とか) の横長行列を作って実験しないと間違っていても気付かない.
- rref を書き換えたプログラムをテストする場合には, 入力を保持して, コピーを渡すとチェックに便利. (A1=A*1; B1=B*1; R=rref(A1,B1); とすれば, A1, B1 がはき出されるが, A, B は元のまま残る.)