解決済みの質問

差分法

単振動の運動方程式 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)の強制振動を与えたときの差分方程式はどのようになるのでしょうか?
よろしくお願いします。

投稿日時 - 2002-09-30 16:17:14

QNo.369914

暇なときに回答ください

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

そもそもこの方程式の解はは振動するものであってもう少しで発散するものです
近似式が発散しないようにするためには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,・・・)とすれば後の問題が求まる

投稿日時 - 2002-10-03 10:21:37

補足

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

投稿日時 - 2002-10-09 10:18:51

ANo.5

1人が「このQ&Aが役に立った」と投票しています

[  前へ  |  次へ ]

ベストアンサー以外の回答(4件中 1~4件目)

ANo.4

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

投稿日時 - 2002-10-01 17:44:33

補足

ご回答ありがとうございます。
間違えというのはおそらく、
(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
ですよね?
上の二つの場合で計算してみましたが、どちらも共振してしまいます。
なぜでしょうか?
何度もすみませんがよろしくお願いします。

投稿日時 - 2002-10-02 14:15:05

ANo.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,・・・)とすれば後の問題が求まる

なお式は保証できませんので自分で確かめてください
「自身あり」は考え方だけですので悪しからず

投稿日時 - 2002-10-01 17:38:09

ANo.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,・・・)とすれば後の問題が求まる

なお式は保証できませんので自分で確かめてください
「自身あり」は考え方だけですので悪しからず

投稿日時 - 2002-10-01 16:43:33

ANo.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を小さくすればするほど近似はようなります

投稿日時 - 2002-10-01 10:15:56

補足

ご回答ありがとうございます。
今頃遅いですが、自分で書いた差分方程式がメチャクチャでしたので訂正します。
(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]はどのように求めるのでしょうか?連立方程式を解くのでしょうか?
お手数ですがよろしくお願いします。

投稿日時 - 2002-10-01 14:48:15

あわせてチェックしたい
  • 波動方程式の差分法による境界条件 ...
  • 差分法 ...
  • 振動方程式の解 ...
PR

OKWaveのオススメ

教えて弁護士さん!

お金の悩みQ&A特集はこちら

おすすめリンク