jyanjayakaの日記

はやめのリリース、しょっちゅうリリース

PythonでTODOアプリ作成

今出回っているTODOアプリで完全に自分がこれだと思うものがない。ので、自分で作ってみることにする。グラフィカルなUIでどんな環境でも使えるようにしたいスマホでもWindowsでもMacでも使えるやつがいい。

作るなら、まず言語を決めなければいけない。どれにしようかと思ったら、どうやら初心者にはpython良いらしい

といわけで言語はpythonに決定。

 

次にどうするか。

  • 単純に「python todoリスト」とかで検索してみる。
  • グラフィカルUIを作りたいならまずゲームの作り方を学んでみようか。(ゲームを作るのは楽しそうだから長続きしそうだ。
  • どんな環境でも使えるなら、Webアプリケーションが良いかもしれない。なので「python webアプリケーション」とかで検索してみる。

 

参考サイト(順次増えてゆく予定)

aidiary.hatenablog.com

 

配位空間を導入すると拘束力が消える理由

力学系の状態が配位空間を運動すると考え、その運動方程式を書き下すと、そこに拘束力が全く含まれていないようにできる。

 

これは考えてみれば当たり前の話で、拘束力は力学系の状態が配位空間で起こるべしという規定を実現させるための、いわば辻褄合わせの力なのである。だから配位空間内で運動が起こるという前提のもと、独立な運動方程式を立てれば、そこに拘束力はないはずなのである。配位座標の時間発展を考えている時点で、前提として運動は配位空間内で起きているのだから、そもそも拘束力を考える必要がない!

 

なぜ拘束力を考えなければならないのかというと、それは我々が力学系を記述するために導入していた座標(普通は直交座標)が上手いものではなかったからである。つまり力学系の記述にとって多すぎる変数を用いている。それによって束縛条件というものを考えなければならなくなり、その結果拘束力を運動方程式内に含めなければならなくなった。

 

これは上手い座標系=配位空間座標系を導入することによって解決される。

解析力学で悩むところ・・・結局Fは時間の関数じゃないのか?

質点に働く力FをF(x,v,t)と表す。しかしvやxはそもそもtの関数なのだから、最初からF(t)と表せばよいではないかという疑問が出てくる。

 

しかしF(x,v,t)とF(t)は関数として異なるものである。より詳しく言うと、変数依存性の観点から見ると両者は異なる。実際、F(x,v,t)と表した時に問題となっているのは力Fがx,v,tの3つの値に対してどう定まるか。その変数依存性である。一方F(t)と表すと力Fが時間tに対してどう定まるかが問題となる。大事な点はFそのものの値ではなく、x,v,tに対してFがどのように決まるか。その機構。対応関係である。

 

もちろんある瞬間におけるFの値が両者で異なるということはない。

 

F(x,v,t)と書いた時には、将来的にFのxやvへの依存性(たとえばFのxでの偏微分やvでの偏微分)を考えることを考慮している。もしF(t)という関数を扱うのであればこの関数のxでの偏微分は考えることができない。なぜならF(t)という関数はtに対してのFの依存性を与えているだけであり、xに関する依存性の情報は持ち合わせていないからである。

波動方程式のより原理的な導出

波動の本質的性質は任意の点における変位はその点に無限小近接する点の変位から誘起されるという点である。この本質的性質だけから波動方程式を導きたい。弦や膜といった具体的な現象から導くのは、あまりにその例へ依存してしまうから避けたい。

 

誘起されるということを力が働くと考える。(この「力」はニュートン力学における力よりも広い概念である。)この力は変位の時間変化を生み出すが、それは一階か二階か、あるいはより高階の微分のどれに影響するだろうか?

 

1階の時間微分に影響すると仮定しよう。すると波動は存在できない。これはバネの例を考えれば良い。実際、もしもバネにつながれた質点の変位が

mv=-kx

と表現される場合、その質点は往復運動をすることなく、バネの自然長に速度を落としながら近づいて、そこにたどり着いた時に静止するだけである。

 

したがって力は1階の時間微分には影響しない。

故に2階以上ということになるが、2階で十分である。

ma=-kx

であれば、質点は往復運動する。力が二回微分に作用するということが、ある意味で「時差」を生むことで、質点に往復運動する余裕を与えるのである。

 

したがって波動方程式

\dfrac {\partial ^{2}f}{\partial t^{2}}=k \times (変位を誘起する力)

という形式に「なるべき」である。(3階以上の時間微分に力が影響することもないとは言えないし、その場合どうなるか考えるのはなかなかおもしろそうである。)

 

変位を誘起する力というのは、最初に述べたとおり、その点に無限小近接する点における変位から生じる。より正確に言えば、その点における変位と無限小近接する点における変位との差によって、変位は誘起される。実際、もし二点における変位が等しいのであれば、そこには伝わるべきものは何もないのである。

従って変位を誘起する力(の一つ)は

\dfrac {\partial f}{\partial x}

によって与えられる。

 

ここで忘れてはいけないのは、力はその点に無限小近接する6点からそれぞれ生じるという点である。(空間をdx,dy,dzで無限小立方体に分割すると、一つの立方体は接する6個の立方体から力を受ける。)

 

この6つの力はx,y,z軸に沿って2つ1組にすると数式的に扱いやすくなる。実際そうするとx,y,z軸に沿う「変位の変化率の変化率」が実質的な効果として現れていると考えられる。要はx軸方向の右との変位差と左との変位差を考え、その差(つまり「差の差」)がx軸方向からの寄与として現れる。これは要するに変位の加速度である。従って無限小近接する全ての点からの寄与を考慮するならば、変位を誘起する力(のx方向からの寄与)は

\dfrac {\partial ^{2}f}{\partial x^{2}}

によって与えられるべきである。

x,y,z軸方向からの寄与はただ単純にこれらを足して

(変位を誘起する力) = \dfrac {\partial ^{2}f}{\partial x^{2}}+\dfrac {\partial ^{2}f}{\partial y^{2}}+\dfrac {\partial ^{2}f}{\partial z^{2}}

で与えられる。(方向によって比例定数が異なると考えてもいい。ただそれは波動に関して本質的ではない。)

なので結局

\dfrac {\partial ^{2}f}{\partial t^{2}} = k \left( \dfrac {\partial ^{2}f}{\partial x^{2}}+\dfrac {\partial ^{2}f}{\partial y^{2}}+\dfrac {\partial ^{2}f}{\partial z^{2}}\right)

これが「変位伝達現象」つまり波動の時間発展を記述する局所的法則であるということになる。

 

ここでやったのは変位とその伝達に関して我々が持つ自然な直感を当てはめて波動方程式を導出するということであり、何か特殊な設定を行えば、その「自然な直感」に当てはまらない例を作ることはできるだろう。例えば膜を特殊な素材で作れば、変位を誘起する力が変位差の二乗で表されるようなことになるかもしれない。

電磁気学を我流でやろうとするとどうなるか

電磁場を定める法則はニュートン方程式にならってみれば、

\dfrac {\partial  \overrightarrow {E}}{\partial t}=

という形式だろうか? あるいはより忠実に二回微分

\dfrac {\partial ^2 \overrightarrow {E}}{\partial t^2}=

であろうか。

 

しかし実際にはそうはならなかった。

それはこれらの物理量(あえて名付けるなら「電場速度」や「電場加速度」だろうか?)が我々が把握しやすいものではなかったからであろう。

ここで述べたように、物理法則はそもそもどんな物理量に注目するかが非常に重要なのである。

物理法則の法則

物理法則はある物理量に関してその性質を述べるものである。従って我々はまず物理法則によってその性質が記述されるべき物理量を定義していなくてはならない。これは当たり前のことなのだが、十分考察しておくに足るものである。

 

ニュートンが始めた力学は、物体の質量、加速度、そして物体に働く力という物理量(ここに時間を加えても良い。)を主人公とする。そしてこれら三つの物理量の間にはF=maという等式が成立すると述べている。

 

もちろんこの等式それ自身も重要だが、そもそも力学というものを研究する時m, a, Fといった物理量を主人公としようと定めたことは無視できない重要性がある。それは我々の思考のフレームワークを規定しているのであり、一度フレームワークを定めてしまえば、問題はm, a, Fの間の関係式を探れという具体的でとっつきやすい問題への変形してしまう。