ま、OS のバージョンが上がった直後の動作確認もかねて、メモ:
よーし、線形代数と微積をいっしょくたにするぜ!ってんなら LA, CAL の順序で連結するよりも callaの方がよさそうだ。 (そうか?)
勉強しようと思って教科書をいつも手元に置いているだけではダメだっつーことが、 よーくわかった。わかったよ。
「線形代数と微分積分は、理科系の人間にとって必須である」というのは、ありゃ、本当だ。 僕のように、それらをあやふやなままにしてしまった人間には、要するに、何にもできない。 「ボーゲンの練習もせずに雪山にきて、どうすんの?」状態である。つっ立ってますが、何か?
というわけで、半期でなんとか一応ケリをつけるべく計画を立てることにした。 計画を立てるのは好きだぜ、楽しいし。
まず、期間を決める。長くて半年、できれば3ヶ月とする。
つぎに、「期末試験」の問題と解答をつくる。 わははは。ここがちょっと変わっていて、かつ、 重要なところじゃないかと思っている。最初に、「最後の試験」の問題と解答をつくるのだ。
そのために、Web で手に入る定期試験問題と解答をいくつか探してみた:オンライン試験問題
これらを、まぁ、なんというか、ぶっちゃけ、切り貼りすることで「期末試験」の問題をつくる。 で、やはり先生方が公開されている解答を引き写してくるような感じで解答もつくる。
最初は、引き写してくるだけだった解答を、 「期末」にはすべて自分で構成できるようにするのがひとつの目安となるわけ。
我ながら、結構いい案のような気がするなぁ。なにより、楽しそうである。 Web で試験問題と解答を公開されている先生は、採点講評も書かれていることがおおく、 それらを読むのも楽しい。
とにかく、楽しそうなやりかたを思いついたのが、うれしい。
pthread for Win32 はちょっとアレな気がしたので、Windows は Windows の 流儀にしたがってみることにする。 なんにしても、開発は unix 上でやるので、 なんかラッパー書くんだろうなぁと思っている。
Visual Studio C++ 2008 Express Edition を入手したんだけれど、統合環境はうざいので、Command prompt を使う。
>cl mt-win.c Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 15.00.21022.08 for 80x86 Copyright (C) Microsoft Corporation. All rights reserved. mt-win.c Microsoft (R) Incremental Linker Version 9.00.21022.08 Copyright (C) Microsoft Corporation. All rights reserved. /out:mt-win.exe mt-win.obj
>mt-win [1356]start [1356]thread_id1=2024 [1356]thread_id2=2036 [1356][1]0 [1356][2]0 [1356][1]1 [1356][2]1 [1356][1]2 [1356][2]2 [1356][1]3 [1356][2]3 [1356][1]4 [1356][2]4 [1356][1]5 [1356][2]5 [1356][1]6 [1356][2]6 [1356][1]7 [1356][2]7 [1356][1]8 [1356][2]8 [1356][1]9 [1356][2]9 [1356]thread_id1 = 2024 end [1356]thread_id2 = 2036 end [1356]end
マルチスレッドプログラミングより(ちょっとだけ改変)。
>cl mutex-win.c Microsoft(R) 32-bit C/C++ Optimizing Compiler Version 15.00.21022.08 for 80x86 Copyright (C) Microsoft Corporation. All rights reserved. mutex-win.c Microsoft (R) Incremental Linker Version 9.00.21022.08 Copyright (C) Microsoft Corporation. All rights reserved.
>mutex-win count1:0:1:2:3:4:5:6:7:8:9: count2:0:0:0:0:0:0:0:0:0:0: count1:0:1:2:3:4:5:6:7:8:9: count2:0:0:0:0:0:0:0:0:0:0: count1:0:1:2:3:4:5:6:7:8:9: count2:0:0:0:0:0:0:0:0:0:0: count1:0:1:2:3:4:5:6:7:8:9: count2:0:0:0:0:0:0:0:0:0:0: count1:0:1:2:3:4:5:6:7:8:9: count2:0:0:0:0:0:0:0:0:0:0: count1:0:1:2:3:4:5:6:7:8:9: count2:0:0:0:0:0:0:0:0:0:0: count1:0:1:2:3:4:5:6:7:8:9: count2:0:0:0:0:0:0:0:0:0:0: count1:0:1:2:3:4:5:6:7:8:9: count2:0:0:0:0:0:0:0:0:0:0: count1:0:1:2:3:4:5:6:7:8:9: count2:0:0:0:0:0:0:0:0:0:0: count1:0:1:2:3:4:5:6:7:8:9: count2:0:0:0:0:0:0:0:0:0:0:
お勉強メモも、UikiTeXi 開発メモも、ぜんぶ混ぜちゃおう。
ネイピア数を使わずに自然対数を定義する。 その後に、自然対数の底がネイピア数と一致することを示したい。
今日はまず、自然対数を定義するとこまで。ある関数 ln を、 双曲線の下方の面積で定義し、その関数が対数関数であることを示す。 んで、その対数関数を「自然対数」と呼んでしまう。
双曲線 の下方にあって、 と との間にある部分の面積を、面積() のように書くことにする。
面積() を、面積() と 面積() に分割して考える(上図も見てね)。
ここで、上の図の x 軸を 倍し、y 軸を 倍すると、 下図のようになる。つまり、面積() は 面積() と等しい。 ( とおいて と の関係を確かめればいい)
よって、
面積() = 面積() + 面積()
となる。関数 = 面積() は、
を満たす、つまり対数関数であることがわかった。この対数関数を自然対数と呼ぶ。
さて、関数 = 面積() が対数関数であることがわかったんですが、こっからどうしようかな。 いまは、上で定義した関数を自然対数と呼んだだけなので、 高校数学でならったような自然対数に関する知識(定理)がほとんど使えないことに注意。
今日はとりあえずここまで。