おんjプログラミング部のwiki

156 :名無しさん@おーぷん :2017/07/23(日)20:12:28 ID:Vya ×
さあ、お題の時間やで彡(^)(^)
今回は数学的な問題や!

まず、以下の4つの実数定数 a, b, c, d が与えられとるんや。

  a = -0.966918
  b = 2.879879
  c = 0.765145
  d = 0.744728

そして、2つの数列 x(1), x(2), x(3), …… と y(1), y(2), y(3), ……を次の漸化式によって定義するんや。

  x(1) = 0.1
  y(1) = 0.1
  x(n+1) = sin( b・y(n) ) + c・sin( b・x(n) )  ( n ≧ 1 )
  y(n+1) = sin( a・x(n) ) + d・sin( a・y(n) )  ( n ≧ 1 )

例えば、x(2) と y(2) は次のように計算できるで!

  x(2)
  = x(1+1)
  = sin( b・y(1) ) + c・sin( b・x(1) )
  = sin( 2.879879・0.1 ) + 0.765145・sin( 2.879879・0.1 )

  y(2)
  = y(1+1)
  = sin( a・x(1) ) + d・sin( a・y(1) )
  = sin( -0.966918・0.1 ) + 0.744728・sin( -0.966918・0.1 )

x(2), y(2) が計算できたら、それらを使って x(3), y(3) を計算できるんや!
x(4), y(4), x(5), y(5), …… についても同様やで!


 157 :名無しさん@おーぷん :2017/07/23(日)20:14:59 ID:Vya ×
そういうわけで、今回のお題は、次の処理を行う関数 func( s, t ) を作ることや ( 関数名・変数名は自由 ) 。

--------------------
2つの整数 s, t を ( 引数として ) 受け取って、数列の第 s 項から第 t 項まで、すなわち

  x(s), y(s), x(s+1), y(s+1), x(s+2), y(s+2), ……, x(t), y(t)

の値を表示する。( 1 ≦ s ≦ t が成立していると仮定してよい。 )
--------------------

表示方法は自由やけど、下の実行例のようなカンマ区切りを推奨するンゴ!
( この問題は、暗にExcelによるグラフ作成を想定しているからや。)


 158 :名無しさん@おーぷん :2017/07/23(日)20:16:37 ID:Vya ×
実行例は以下のような感じや。
1列目が項番号、2列目が x の値、3列目が y の値やで。

----------
func(1,1) が実行された場合

1,0.100000,0.100000
----------
func(2,2) が実行された場合

2,0.501343,-0.168438
----------
func(1,5) が実行された場合

1,0.100000,0.100000
2,0.501343,-0.168438
3,0.292703,-0.345238
4,-0.267083,-0.035245
5,-0.633515,0.280762
----------
func(5,10) が実行された場合

5,-0.633515,0.280762
6,-0.017369,0.375262
7,0.844034,-0.247538
8,-0.154760,-0.551935
9,-1.329664,0.527927
10,1.484401,0.595769
----------

コメントをかく


「http://」を含む投稿は禁止されています。

利用規約をご確認のうえご記入下さい

どなたでも編集できます