2008年
8月
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

setup diary

2007|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|06|08|11|
2015|01|02|03|04|05|06|07|08|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|

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で選択する必要があった。