12/19 数値計算(3)・パターン認識


前回の感想,質問より

Q.
最後のガウス=ジョルダン法ではgjとgjaに差が出ませんでした。
A.
変数aに連立方程式の係数からなる配列を代入してgj(a)を実行した(誤差が入った解がaに求まる)後で,すぐにgjp(a)を実行したのではないでしょうか? gj(a)を実行すると,変数aに対応する配列の中身が書き換わってしまう(誤差を含んだものになってしまっている)ので,変数aにもう一度,連立方程式の係数からなる配列を代入してからgjp(a)を実行する必要があります.
Q.
もっとうつのを早くしたい。一度キーボードを打っている自分の手を撮影してみようかしら。
A.
タイピングを上手にできるようにするには,正しい指でタイプするように練習を重ねることが必要です. HWB:5.2.4タイピングの練> などでタイピング練習法が書いてあるので参考にしてみてください. スポーツでは自分のフォームを撮影して確認すると効果がありますが,タイピングの上達法としてはあまり聞きませんね.
Q.
丸め誤差が存在するということは、すべての実数を2進数で(近似的に)表しているということなので、例えば1+2 のような簡単な計算でも実際のコンピュータでは2進数を使って計算しているということなのでしょうか?
A.
「すべての数を2進数で計算している」というのは正しいです.数は浮動小数点表現あるいは,整数表現で表されます.浮動小数点表現の場合は,実数を対象にした表現形式なので,基本的には近似表現だと思ってよいでしょう.ただし,1や2のような絶対値の小さい(32ビット)浮動小数点表現の場合,2**23以下の)整数は誤差なく表現されるので,以下のようになります.
irb(main):002:0> 1.0+2.0 == 3.0
=> true
irb(main):003:0> 0.1+0.2 == 0.3
=> false

前回の課題について


投票システム

vote.rbをダウンロードして,ホームディレクトリに保存してください.ドックからターミナルを起動して,
ruby vote.rb 選択肢番号
のように使います.

今日の練習,投票

関連リンク


教科書の補足


今日の課題