• ベストアンサー

差分法

単振動の運動方程式 x"+x=0 を差分法で解こうと思っています。 おそらく差分方程式は、 (x[n+1]-2x[n]+u[n-1])/dt^2=u[n] で良いと思われるのですが(違ってたら指摘してください)、初期条件 x(t=0)=aとx'(t=0)=b の与え方が良く分かりません。 また、sin(ωt)の強制振動を与えたときの差分方程式はどのようになるのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • nubou
  • ベストアンサー率22% (116/506)
回答No.5

そもそもこの方程式の解はは振動するものであってもう少しで発散するものです 近似式が発散しないようにするためにはhをかなり小さくしなければなりません そのとき発散のスピードは(1+h^2)^(n/2)です この値が1に比べてあまり大きくないとみなすことができるnの範囲が近似の結果が意味をなすnの範囲です より大きなnにおける近似結果を利用する場合にはそれに応じてhを小さくしなければなりません 元の式が安定と不安定の間になくて安定であればこのような不都合はありません 一応更正版を出しますが勿論式は保証できません (x[n+2]-2・x[n+1]+x[n])/h^2+x[n]=u[n] すなわち x[n+2]=2・x[n+1]-(h^2+1)・x[n]+h^2・u[n]・・・(*) を初期条件 x[0]=a と (x[1]-x[0])/h=bすなわちx[1]=b・h+x[0] のもとで解くわけだから 初期条件により x[0]=a と x[1]=b・h+a が分かる (*)においてn=0として x[2]=2・x[1]-(h^2+1)・x[0]+h^2・u[0] は既に求まっているx[0]とx[1]から求まる (*)においてn=1として x[3]=2・x[2]-(h^2+1)・x[1]+h^2・u[1] は既に求まっているx[1]とx[2]から求まる (*)においてn=2として x[4]=2・x[3]-(h^2+1)・x[2]+h^2・u[2] は既に求まっているx[2]とx[3]から求まる (*)においてn=3として x[5]=2・x[4]-(h^2+1)・x[3]+h^2・u[3] は既に求まっているx[3]とx[4]から求まる (*)においてn=4として x[6]=2・x[5]-(h^2+1)・x[4]+h^2・u[4] は既に求まっているx[4]とx[5]から求まる ・・・・・・・・・・・・・・・・・ u[n]=0(n=0,1,2,3,・・・)とすれば最初の問題が u[n]=sin(ω・h・n) (n=0,1,2,3,・・・)とすれば後の問題が求まる

alha
質問者

補足

ご回答ありがとうございます。遅くなりましてすみません。 更正された式で試してみませたが、計算結果は以前の式のものと全く同じになりました。難しいですねぇ。。まだ何か方法がありましたらお願いいたします。

その他の回答 (4)

  • nubou
  • ベストアンサー率22% (116/506)
回答No.4

前回答に間違いが少なくとも一箇所あります 管理者に怒られるので指摘できません 補足で指摘してください

alha
質問者

補足

ご回答ありがとうございます。 間違えというのはおそらく、 (x[n+1]-x[n]+x[n-1])/h^2+x[n]=0が (x[n+1]-2x[n]+x[n-1])/h^2+x[n]=0 ですよね? 上の二つの場合で計算してみましたが、どちらも共振してしまいます。 なぜでしょうか? 何度もすみませんがよろしくお願いします。

  • nubou
  • ベストアンサー率22% (116/506)
回答No.3

(x[n+2]-x[n+1]+x[n])/h^2+x[n]=u[n] すなわち x[n+2]=x[n+1]-(h^2+1)・x[n]+h^2・u[n]・・・(*) を x[0]=a (x[1]-x[0])/h=bすなわちx[1]=b・h+x[0] のもとで解くわけだから x[0]=a x[1]=b・h+a (*)においてn=0として x[2]=x[1]-(h^2+1)・x[0]+h^2・u[0] =b/h+a-(h^2+1)・a+h^2・u[0] (*)においてn=1として x[3]=x[2]-(h^2+1)・x[1]+h^2・u[1] (*)においてn=2として x[4]=x[3]-(h^2+1)・x[2]+h^2・u[2] (*)においてn=3として x[5]=x[4]-(h^2+1)・x[3]+h^2・u[3] (*)においてn=4として x[6]=x[5]-(h^2+1)・x[4]+h^2・u[4] ・・・・・・・・・・・・・・・・・ u[n]=0(n=0,1,2,3,・・・)とすれば最初の問題が u[n]=sin(ω・h・n) (n=0,1,2,3,・・・)とすれば後の問題が求まる なお式は保証できませんので自分で確かめてください 「自身あり」は考え方だけですので悪しからず

  • nubou
  • ベストアンサー率22% (116/506)
回答No.2

(x[n+2]-x[n+1]+x[n])/h^2+x[n]=u[n] すなわち x[n+2]=x[n+1]-(h^2+1)・x[n]+h^2・u[n]・・・(*) を x[0]=a (x[1]-x[0])/h=bすなわちx[1]=b・h+x[0] のもとで解くわけだから x[0]=a x[1]=b/h+a (*)においてn=0として x[2]=x[1]-(h^2+1)・x[0]+h^2・u[0] =b/h+a-(h^2+1)・a+h^2・u[0] 以下n=1,2,3,4,・・・とすればすべての0以上の整数nについて x[n]がもとまる u[n]=0(n=0,1,2,3,・・・)とすれば最初の問題が u[n]=sin(ω・h・n) (n=0,1,2,3,・・・)とすれば後の問題が求まる なお式は保証できませんので自分で確かめてください 「自身あり」は考え方だけですので悪しからず

  • nubou
  • ベストアンサー率22% (116/506)
回答No.1

x(t)→x[n] x’(t)→x1[n]=(x[n+1]-x[n])/h x”(t)→x2[n]=(x1[n+1]-x1[n])/h u(t)→u[n]=sin(ω・h・n) とおけばいいのでは? すると x”(t)→x2[n]=(x[n+2]-x[n+1]+x[n])/h^2 x(0)=a→x[0]=a x’(0)=b→x1[0]=(x[1]-x[0])/h=b になります x1[n]とx2[n]を消去してx[n]だけの式にして解いてください 0<hを小さくすればするほど近似はようなります

alha
質問者

補足

ご回答ありがとうございます。 今頃遅いですが、自分で書いた差分方程式がメチャクチャでしたので訂正します。 (x[n+1]-2x[n]+x[n-1])/dt^2=-x[n] そして質問がございます。おそらくnubouさんが書いてくださった式を整理すると差分方程式は、 (x[n+2]-2x[n+1]+x[n])/h^2=-x[n] になりますよね?初期条件のx[0]=aは分かりますが、x1[0]=(x[1]-x[0])/h^2=bをどのように使用したらよいのか分かりません。また、x[1]はどのように求めるのでしょうか?連立方程式を解くのでしょうか? お手数ですがよろしくお願いします。