ちょくちょくやらかしているのだが、練習問題を解いていたら、力の釣り合いの基本の基本を間違った。一つのことが気になり始めると、そこにばかり目が行ってしまうという、典型的な自爆パターン。
1日おいて解き直したら、sinとcosを逆にしてた。感覚というか勢いで判断して嵌るパターン。はぁ…
ちょくちょくやらかしているのだが、練習問題を解いていたら、力の釣り合いの基本の基本を間違った。一つのことが気になり始めると、そこにばかり目が行ってしまうという、典型的な自爆パターン。
1日おいて解き直したら、sinとcosを逆にしてた。感覚というか勢いで判断して嵌るパターン。はぁ…
論理ゲートのことは一旦忘れて、フリップフロップとはこういうものだと割り切ってしまえば、その後の話も一応の理解はできた。マクロな視点で感覚を掴んでから、ミクロな視点で考えれば良いというか。
最初からこんな感じで考えれば良かったのだが、自分の悪い癖である。
個人的に興味を惹かれたセミナーがあったので受講した。言われてみればそうなんだけど、自力では気づけなかったであろうことが沢山あって、非常に有意義だった。理解を深めるために繰り返し復習したいと思ったのと、もう一歩進んだ内容のセミナーもやってくれないかなと思った次第である。
職人的な世界ではあるのだけれど、面白いよなぁ。
ここ数ヶ月で講談社BLUE BACKSの本を何冊か買った。記憶に残っているものを(多分、漏れはないと思う)購入順に挙げると、「Raspberry Piではじめる機械学習」「Raspberry Piではじめる電子工作」「ゲノム編集とはなにか」「トポロジカル物質とは何か」で、一番読んでいるのは「トポロジカル物質とは何か」である。
今のところ1/3程度読み進んだが、学生時代にやっていたことと極めて近い(一部重複する)領域の話なので、結構すんなりと頭に入ってくるし、学生時代のワクワク感が蘇って来る。もっとも、まだイントロの部分なので、これから色々と躓きそうではあるが。
しっかりした理解には、紙と鉛筆を使いながら考えることが必要になるだろうが、それはもうしばらく先の話である。
速度に比例する抵抗を受けながらの落下について、Pythonを使って、Euler法、odeint、Runge-Kutta法の3種類の計算をやってみた。グラフは比較用の解析解を加えた4つをプロットしているけど、一目で分かる違いなんてない。ちなみにグラフは上が変位、下が速度である。まぁ、終端速度がありますね、というくらいの話である。
しばらくプログラミングは何もしていなかったので、タイピングがどこかぎこちなくて、打ち間違いが滅茶苦茶多かったが、ようやくマシになってきた。
荷電粒子の計算は、一応一通りのことをやったのだが、本の内容から更に進んだことをやろうとしたら、荷電粒子間の距離が近すぎて、クーロン力が発散する状況が発生した。数値計算的には何らかの処理方法があるのだろうが、それがどんなものかは分からないし、それを調べるよりは他のことに時間を使いたいので、一先ず後回しにする。
先に進んで、odeinfを使って微分方程式を数値的に解いてみた。1階微分なら「まぁそうなんだろうな」で終わるけど、2階微分だと、最初は何が何だかという感じである。Webで散々調べて何となく分かってきたので、もう少しあれこれやるつもりである。別にodeinfに拘る必要はないんだけど、折角出会ったのだから、一通りのことはしてみたいと思うので。あと、Pythonのスライスも初めて知った。これは使っているうちに慣れるだろう。
こうしてみると、業務での文字列処理を念頭において「独習 Python」を購入したが、趣味の方は、以前購入した「科学技術計算のためのPython入門」の方が適切だったと、今更ながらに思う。ひょっとすると、「Pythonによる数値計算とシミュレーション」とGoogle先生だけで足りるかも知れない。
いずれにしても、Pythonで色々なことができるようになりたいものだ。
今日も「Pythonによる数値計算とシミュレーション」のコードを出発点に、計算をしてみた。所定の初期条件の下に、宇宙船が軟着陸のために逆噴射した後の振る舞いを計算するというものである。要は、運動方程式の加速度に、あるタイミングで重力加速度よりも大きく逆向きの加速度が加わった場合にどうなるかという計算である。
上記書籍では、逆噴射のタイミングを指定しているのだが、そのタイミングが丁度良いのだろうとは思うものの、そのタイミングを求める計算もしたいと思い、その辺りも計算できるコードを付け加えてみた。逆噴射のタイミングを変化させながら、座標の時間依存性(2次関数)を計算して、その最小値が負となるものの中で最大となるような逆噴射のタイミングが、軟着陸には最適で(最も衝撃が少ない)、上記書籍では予めそのタイミングを指定している、という予想である。それなりに手こずったが、予想通りの結果となって満足である。
次は荷電粒子の運動だが、その前に電磁気学の復習が必要だ。
手元にある力学の本を読みながら、ケプラーの法則と運動学から何が言えるかを計算してみた。惑星は公転方向には加速されていないこと、加速度は太陽の方向を向いていて太陽からの距離の2乗に反比例すること、その係数は惑星によらないこと、である。
こんなことを真面目に計算したのは初めてではないだろうか。量子物性ばかり面白がって、古典物理を疎かにしていたことを再認識している。
試験勉強の合間の楽しみというだけでなく、(すぐではないが)仕事にも役に立つことなので、コツコツやって行ければ嬉しい限りだ。
先日(元)メカ屋が揚力が発生する原理として、翼の上面の流速が下面のそれよりも大きいことを挙げていたのだが、ちょっと引っ掛かった。一瞬それが「ありがちな間違い」と言われるもののように聞こえたのである。
今日、上述の出来事を思い出したので、何度目になるのか分からないが、揚力について調べてみた。
手元にある機械学会誌の記事によると、ベルヌーイの定理から説明するには、翼の上面の流速が下面のそれよりも大きいことが前提となるそうである。そういう意味ではメカ屋は嘘を言った訳ではないことが分かったが、常にその前提が成り立つかどうかは別物のようだ。
もう一つ、流線曲率の定理を出発点とする説明があることも知っているが、理解からは程遠いものである。そう言えば、コアンダ効果で説明すべきものだという話もあったっけ。
結局は、理解が深まらないまま放置になってしまうのだが、そのうちやる気を出して理解する日が来るかも知れないので、前も同じこと書いたよなぁと思いながら書き続けることにする(笑)
ZEONIC TECHNICSのザクが一通り組み上がって、完成確認の動作もできた。外観的なところだと、デカールを貼れば終わりかな。
その先は、アプリから制御プログラムを組むことになると思うが、LabViewみたいなものかなぁ。少なくとも、自分でコードを書くことはないと思う。
そこまでやりたくなったらMindstormsだろうか。