SSブログ

Javaを完全に忘れてしまった(>_<) [ひとこと言わねば]

ちょっと、Javaでプログラムを書こうとしたのだけれど、俗に「Hello,World」と言われる最も簡単なプログラムすらJavaで書けなくなっていた。

Javaのプログラムなんてかれこれ5年以上は書いていないから、どうやら、完全にJavaを忘れてしまったようだ。
このことに気づき、思わず、愕然としてしまったケロよ。


完全にお手上げ状態。ネムネコの頭の中は、どうやら、お花畑に化してしまったようだ。ちょっと、これは洒落にならない。やっぱ、忘れないように、たまにはJavaでプログラムを書かないとダメだね。
このぶんだと、データベースを操作するSQLさえ完全に忘れているに違いない。

となると、ネムネコが現在使えるプログラミング言語は、FortranとC/C++とBasic(Visual Basicやエクセルなどのマクロ用のVBAではない。ネムネコはペンギンOS派なので、VBやVBAを使えないし、何故、MSのソフトなんぞを使わないといけない。マクロを作るくらいならば、最初からCなどでプログラムを作るケロ!!)くらいか。結構、コンピュータ言語を知っていたはずなんだけれど、情けないな〜、ホント。
――HSP(Hot Soup Processor)という怪しげなプログラム言語さえ知っていた。しかし、数多く知っていても、所詮、教科書的な知識で、オモチャのようなプログラムしか作れないしない。素人の悲しさとい奴だね〜(涙)――

プログラマーじゃないから、プログラミング言語を1つ、2つ知っていれば、それで十分ではあるのだが・・・。


nice!(3)  コメント(0) 

考えるネムネコ 数列の極限値 [高校の数列の極限]

大学入試問題に、漸化式

  

であたえられる数列の極限値問題が出ていたような記憶があったので、ネムネコが高校時代に使っていた参考書を調べてみたら、出ていた。

 

問題1 実数x₁を任意にとり、2次関数f(x)=x(2−x)を用いて

  

により、数列x₁,x₂,x₃,・・・を定める。

(1) 一般項を初項x₁で表わせ。

(2) この数列が収束するようなx₁の範囲を定めよ。

【略解】

(1) の両辺を1で引くと、

  

よって、

  

 

(2) 収束の条件は、

  

よって、0≦x₁≦2である。

(略解終)

 

 

問題2 無限数列が次の条件を満たしている。

(1) とするとき、の間の関係式を求めよ。

(2) 初項x₁0<x₁<をみたしているならばであることを示せ。

(3) 0<x₁<1であるとき、を求めよ。

【略解】

(1) 問題の条件より、

  

これを代入すると、

  

 

(2) とすると、

  

 

(3) (1)より

  

0<y₁<1だから、

  

よって、

  

(略解終)

 

何故、⑨になるのかわからないヒトは、だから、

  

の両辺の対数をとると、

  

ここで、

  

とおくと、(1)より

  

とするといいのではないか。

 

この類題は、おそらく、これまでに何度も繰り返し大学入試に出題されつづけてきた有名問題なんでしょう、きっと。

 

ただ、問題1の(1)は、少し不親切のように思う。

両辺を1で引くことに気づかないと、一般項を求めるのは難しいからね〜。

とし、漸化式に代入すると、

  

だから、α=1で両辺を引くんです。(受験)参考書にはそう書いてあります。これは受験数学のテクニックで、いやしくも難関大学(問題1は阪大の大昔の入試問題)を目指す者は誰しも知っていることです」と言われて、「あっ、そうですか」と苦笑いするネムネコであった。

 

本当に、そんなことを(受験)参考書には書いてあるのだろうか?

じゃぁ〜、なぜ、0で引いたら、ダメなんだろうか?



nice!(0)  コメント(0) 

今日のアニソン、「パーフェクトブルー」から『愛の天使』 [今日のアニソン]

今日のアニソンは、アニメ「パーフェクトブルー」から『愛の天使』です。


この曲とは裏腹に、アニメのほうは随分と過激な内容のようだにゃ。


こっち↑は猟奇的すぎて、ネムネコは見ることができないにゃ(>_<)
何でもこのアニメはR15指定のアニメらしい。精神年齢が1桁のネムネコには刺激が強すぎる!!



nice!(1)  コメント(0) 
共通テーマ:音楽

ロジスティック方程式の数値解法 [数値解析]

ロジスティック方程式の数値解法

 

ネットで次のような問題を見つけた。

 

問題 次の微分方程式(ロジスティック方程式)

  

を、t∈[0,1]の範囲で初期条件

  

および

  

のもとにオイラー法を適用して、次のことを調べよ。

(1) t=20の値を解析解と比較せよ。

(2) 独立変数の差分間隔をΔt=1.0とした場合、どのような解が得られるか調べよ。

(3) この方程式はどのような物理現象を表しているか説明せよ。

(4) この方程式の差分方程式とカオスの関係について説明せよ。

 

問題の題意が多少曖昧であるが、面白そうなので、解いてみることにした。

 

オイラー法とは、微分方程式

  

の解を

  

と近似し、x₀=x(t₀)を出発点とし、逐次的に計算することで微分方程式の数値解を求める方法。

ここで、における微分方程式の数値解である。

差分間隔と一定の場合、差分方程式は

  

となる。

本問の場合、

  

とおけば、

  

という差分方程式が得られ、初期条件を計算の出発点に、上の漸化式を用いて、

と次々と計算すればよい。

 

微分方程式

  

は、変数分離法を用いると、

  

となる。

x₀=x(0)とすると、初期条件から

  

となり、解は次のようになる。

   


したがって、t→∞のとき、初期値x₀に無関係に

  

に収束する。

t=20のとき、e²⁰は非常に大きい数になるので、


  

となることが容易に予想できるだろう。

 

Δt=1x₀=0.1として、表計算ソフトを用いて計算した結果は次の通り。



なお、Δt=1のとき、

  

両辺を1で引くと、

  logi-000.png

となるので、Δt=1のとき、これを用いて計算してもよい。



計算結果をグラフにすると、次のようになる。

 

 

参考までに、4次のルンゲクッタを用いて解いた結果を次に示す。

 

Δt=1x₀=2.0のときの計算結果は、次の通り。

この条件で、オイラー法を用いて、微分方程式の近似解を求めると、t=1以降のxの値がすべて0となり、t→∞のときの極限値が0になってしまい、解析解の挙動を捉えていないことがわかる。

このことは、x₀=2のとき、⑨より、x₀−1=2−1=1となり、

  

となることからわかる。

また、x₀>2のとき、x₀−1>1となり、xは単調に減少し、

  

となることも容易に理解できるだろう。

 

参考までに、同一の計算条件で、ルンゲ・クッタ法を用いて、解いた結果は次の通り。

 

 

(1)と(2)はこれでよしということにしよう。

 

(3)だが、ネムネコは物理屋さんじゃないので、この方程式がどのような物理現象を表しているかについては答えられない。

この件については、ddt³さんに丸投げする(^^

 

ロジスティック方程式は、マルサスの人口論にある

「人口は幾何級数的に増加する」

つまり、

  

という人口増加のモデルに対する反論、または、その修正として作られたモデル。

マルサスのモデルだと、

  

となり、t→∞のとき、x→∞になってしまう。

こんな解は非現実的だということで、人口、生物の個体数の増加を抑制する、

  

という項を加え、

  

としたものをロジスティック方程式という。

ここで、r内的自然増加率K環境収容力などと呼ばれる。

本問の場合は、r=1、K=1である。

この微分方程式を解くと、

  

となり、

  

なぜ、Kを環境収容力と呼ぶのか、理解してもらえるのではないだろうか。

 

(4) いったい、何をもってカオスと呼ぶのか不明なので、何とも答えようがないのだけれど、たとえば、x₀=0.1Δt=2とすると、次のような振動解が得られるってことをいいたいのか。Δt=2のときは振動しながらも1に収束するが、2<Δt≦3のときは収束せずにΔtが増加するとカオス的な状況を呈するようになる。

それとも、Δx=1のとき、オイラー法では、t→∞の時に得られる定常解が10、−∞と初期値x₀の値によって変わるということを言いたいのだろうか。

はたまた、時間進展とともに、微小な擾乱(この場合、オイラー法の打切誤差)が時間進展とともに増大し(打切誤差の蓄積のため)、積もり積もって、破局・カタストロフィーをもたらすというバタフライ効果を言いたいのか(・・?

 

 

続きを読む


nice!(1)  コメント(2) 

この広告は前回の更新から一定期間経過したブログに表示されています。更新すると自動で解除されます。