2008年08月03日 rubyの同一の判断
_ arrayと==
最近、四次元について考えているが、やはり人間は二次元から三次元の動物で、四次元はなかなか頭で描くことができない。そうなると、数学で考えるしか無い。
Matrixの==の定義を書き換えて、多少値が異なっても、同じものだという判断をするようにしてみたが、同一の判断にはいろいろあるようで、思ったように動くときと、動かないときがある。
たとえば、arrayのinclude?は良いようだが、arrayの==や-やuniqはうまくいかないようだ。この判断には、Matrixの==を使っていないのかな。
arrayの中身の処理は、どのようにしているか分からないので、本当は短く書きたいのだが、include?等を使って、その部分を書き下すことによって処理している。arrayの中で使っている同一の判定を書き換えれば良いはずなのだが。
_ 2008/8/7追記
eql?かと思ったが違うようだ。hashを使っているのかもしれない。
2008年08月07日 matrix.rbのeql?
_ バグかも知れない
行列の計算をしていて気がついたのだが、matrix.rbの中に書き間違いがあるかも知れない。Matrix classの中には、alias eql? ==という定義がされているのだが、Vector classには、
alias eqn? ==という定義がある。eqnは通常equationの略として使うように思われるので、おそらくこれはeqlの打ち間違いではないかと思う。1.8でも1.9でもそうなっていたので、まだあまり気づかれていないのだろう。こういうことはどこに報告すれば良いのか分からないが、ここに書いておくと、誰かが見付けて報告してくれたりしないかな。
_ 2008/9/15追記
なんか、bugレポートがされているようだ。書いてみるもんだ。
_ 2009/4/4追記
Lennyのruby1.8でもまだ変更されていないようだ。bug reportではもうclosedになっているんだけどな。
2008年08月08日 matrix.rbのinv
_ 逆行列がうまく計算できない。
matrix.rbをつかって、行列を計算していて、なんだかおかしいので、自分の組んだ部分にバグがあるのかと思って、いろいろと調べていたが、分からない。pで、途中の変数を表示して調べていると、逆行列がうまく計算できていないようだ。 invを用いて逆行列を計算しているのだが、Matrix[[1.66533453693773e-16, 0.0, -0.5, -0.866025403784439], [0.0, 1.66533453693773e-16, 0.866025403784439, -0.5], [-0.5, -0.866025403784439, 1.66533453693773e-16, 0.0], [0.866025403784439, -0.5, 0.0, 1.66533453693773e-16]]の逆行列を計算すると、変な値になってしまう。matrix.rb中ではどのように逆行列を計算しているのかは読んでいないが、どうも通常良く用いられる余因子を使った計算ではないようだ。自分で書いても良いが、面倒なので、今回は直交行列しか用いないことにして、transposeで代用することにしよう。
2008年08月19日 PSTrickを使ってみた
_ ProsperとPSTrick
プレゼンテーションをする機会が多くなってきたが、世の中ではPowerPointなるものがよく使われているようである。私も、使おうと試みたことがあったのだが、難し過ぎて使えなかった。よく他の人は、こんな使いにくいものを使えるものだと関心する。 そこで、TeXを使って行うのだが、使うものは、普通のTeX、slide class、seminar class、と変遷を経て、現在はProsperを使っている。見た目がきれいなものが作りやすいので、重宝している。 図を書くときに、picture環境ではうまくいかなかったので、PSTrickを使ってみた。Prosperでも使われているので、なにも宣言しないで良い。unitlengthの代わりに\psset{unit=1mm}と宣言して、picture環境の代わりにpspicture環境にして、putの代わりにrputとすれば、picture環境と同じことはほぼできるようである。
\pscircle[linestyle=none,fillstyle=gradient,gradbegin=cyan,gradend=blue](0,60){20}などとしてみたが、半径指定であることが、picture環境のcircleとの違いでしょうか。あと、putするわけではない点も違うか。今後、PSTrickも徐々に使えるように勉強しよう。
2008年08月20日 eepic
_ texで図
この前はPSTrickを使ったが、通常のお絵書きには、eepicで十分である。eepicでは、いろいろな制限が取り払われて使い易くなっているのがだ、不満なのは、vectorの傾きに制限があるということである。また、うまく使いこなせていないので、一点破線や二点破線などはあまり納得できるものが書けていない。これは設計図や折紙の展開図で必要になるのだが、今後の課題である。 今日新しく知ったのが、Thicklinesとallinethicknessである。前者はticklinesの1.5倍の太さになるらしい。後者は、all line thicknessをくっつけたもののようだが、lは三つではなく二つなのが間違いそうだ。任意の太さを指定を\allinethickness{1mm}と指定できるので、便利である。まあ、他のコマンドはだいたい使っているので、問題無い。やはりあとはdrawlineとdottedlineとdashlineの細かい使い方だ。
2008年08月28日 Linuxで録音
_ 装置の音の録音に向けて
装置から異常な音がすることがある。実験中の音を録音しておけば、いろいろと役に立つのではということで、録音に挑戦した。 まずは、alsaをインストールして、alsaconfでドライバを認識させて、alsamixerで設定する。このときにわかり難かったのは、micがoffになっている場合には、mで有効にすることと、captureを表示させるときにtabを押す必要があることとと、micを選択するときにspaceで行うという点だろうか。あとは、micとcaptureをそれなりの値にすれば良いようだ。arecord temp.wavで記録して、
aplay temp.wavで再生しても、非常に小さい音にしか聞こえない。マイクが悪いのかな。まだいろいろと調整が必要なようだ。
_ 2008/9/10追記
あるPCでは、captureのところでもspaceで選択する必要があった。