• ベストアンサー

次の方程式がわかる方教えてください

数学から離れてもう、25年になりますので私には解けません。どなたかわかる方おりますか。Xの値が1ずつ変化すると、yの値が  -7,-1,-6,-2,-5,-3,-4 と変化する方程式です。お分かりになる方是非教えてください。

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

  • ベストアンサー
noname#56760
noname#56760
回答No.7

ミス入力がありました。修正します。 a=x-7[x/7]より 順にx=0,1,2,3,4,5,6ではa=01,2,3,4,5,6 順にx=7,8,9,10,11,12,13ではa=01,2,3,4,5,6 順にx=14,15,16,17,18,19,20ではa=01,2,3,4,5,6 ・・・とうまく繰り返されます。 後ろの10×[x/7]ですが、 順にx=0,1,2,3,4,5,6では10×[x/7]=0 順にx=7,8,9,10,11,12,13では10×[x/7]=10 順にx=14,15,16,17,18,19,20では10×[x/7]=20 ・・・・と十の位もうまくいきます。

ityounomi
質問者

お礼

ご教授ありがとうございました。なんとかやりたいことができました。ちょっと強引でしたが、つぎのようなものです。 Dim x, y, z As Integer For z = 0 To 190 Step 10 For x = -1 To 6 For i = 0 To 3 y = Fix(((6 - x) / 2) * (-1) ^ (x + 1) - 4) Sheets(a).Cells(12 + z, 4).Offset(y, i) = Sheets(b).Cells(4 + x, 7).Offset(0, i) Next i Next x Next z ちょっとxを-1からスタートさせているのが邪道っぽいんですが、動作は意図したものになりました。ほんとうはx=0からスタートしたかったのですが、十分です。  d-l_-b様をはじめ、ご教授くださった皆様本当にありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (7)

回答No.8

EXCELで計算するなら、 変数(x)をA1からAnのセルにいれて、 =IF(INT((A1-1)/7)<0,0,-4+(-1)^(MOD(7-MOD(A1,7),7)+1)*INT((MOD(7-MOD(A1,7),7)+1)/2)-10*INT((A1-1)/7)) を関数値(y)のセルB1に入れて、B1のセルをB2からBnのセルまでコピーすればできあがりです。

ityounomi
質問者

お礼

ありがとうございます。 オ~!と思い、関数欄に貼り付けて、マクロをとろうとしましたが、 #NAME?でした。 =IF(INT((A1-1)/7)<0,0,-4+(-1)^(MOD(7-MOD(A1,7),7)+1)*INT((MOD(7-MOD(A1,7),7)+1)/2)-10*INT((A1-1)/7))

すると、全ての回答が全文表示されます。
noname#56760
noname#56760
回答No.6

No4です >>結局xの値が8個取得される毎に、次回のyの値は-10されながら 上記の決まりで決定していくという式です。 x=0のときy=-7のようですね。 -7,-1,-6,-2,-5,-3,-4,-17,-11,-16,-12,-15,-13,-14,-27,-21,-26,-22,-25,-23,-24,,-37,-31,-36,-32,-35,-33,-34 ですが一の位は7,1,6,2,5,3,4の繰り返しですね。 私の回答を微調整(x=0でy=-7となり、繰り返しが起こるようにして、更に十の位もあうように)して y=-7+(7/2){1-(-1)^a}+{(-1)^a-1}/4-{(a(-1)^(a+1)}/2-10×[x/7] ただしa=x-7[x/7] でうまくいかないでしょうか。 ちなみに[A]はAを越えない最大の整数です。 -7,-1,-6,-2,-5,-3,-4,I-17,-11,-16,-12,-15,-13,-14,I-27,-21,-26,-22,-25,-23,-24,I-37,-31,-36,-32,-35,-33,-34,I このように区切ってやってみました。 a=x-7[x/7]より 順にx=0,1,2,3,4,5,6ではy=01,2,3,4,5,6 順にx=7,8,9,10,11,12,13ではy=01,2,3,4,5,6 順にx=14,15,16,17,18,19,20ではy=01,2,3,4,5,6 ・・・とうまく繰り返されます。 後ろの10×[x/7]ですが、 順にx=0,1,2,3,4,5,6では10×[x/7]=0 順にx=7,8,9,10,11,12,13では10×[x/7]=10 順にx=14,15,16,17,18,19,20では10×[x/7]=20 ・・・・と十の位もうまくいきます。

ityounomi
質問者

お礼

For x = 0 To 7 a = x - 7 * (x / 7) y = -7 + (7 / 2) * (1 - (-1) ^ a) + ((-1) ^ a - 1) / 4 -      ((a * (-1) ^ (a + 1)) / 2 - 10 * (x / 7)) Cells(x + 1, 7) = y Next x -7 -5.571428571 -4.142857143 -2.714285714 -1.285714286 0.142857143 1.571428571 3 式ですが、VBA用に上記のように書き換えましたが、違っているでしょうか。結果がその下のようになりました。

すると、全ての回答が全文表示されます。
  • mmk2000
  • ベストアンサー率31% (61/192)
回答No.5

No.3です。 第8項、第16項、第24項…と8の倍数の項から-10ずつ加えていくのであれば、先ほどの式にガウス記号を使い -10×[x/8] と言うものを加えればできます。 エクセルで行うのであれば別のアプローチも考えてみます。

ityounomi
質問者

お礼

ありがとうございます。実は、何名かの方からいただいた式をVBAでやってみたのですが、私のxとyの値の示し方が悪かったようで、正しく出てきませんでした。x=0のときはy=0です。x=0のときy=-7と捕らえられてしまっていたようで。パソコンで計算しているので、数学上は正解でも、2進法上の誤差がでるので正しく出ないのかもしれませんが。

すると、全ての回答が全文表示されます。
noname#56760
noname#56760
回答No.4

数列と考えれば-7,-1,-6,-2,-5,-3,-4 から階差(隣り合う2項の差)をとって 6,-5,4,-3,2,-1 この数列b(n)=(7-n)(-1)^(n-1)  x-1 Σb(n)=(7/2){1-(-1)^(x-1)}+{(-1)^(x-1)-1}/4-{(x-1)(-1)^x}/2=B n=1 よって y=-7+B=-7+(7/2){1-(-1)^(x-1)}+{(-1)^(x-1)-1}/4-{(x-1)(-1)^x}/2 となります。 x=1ならy=-7 x=2ならy=-1 x=3ならy=-6 x=4ならy=-2 x=5ならy=-5 x=6ならy=-3 x=7ならy=-4 となります。

ityounomi
質問者

お礼

ありがとうございます。沢山の方から回答をいただいて大変助かっております。早々に使用させていただきます。ありがとうございました。

すると、全ての回答が全文表示されます。
  • mmk2000
  • ベストアンサー率31% (61/192)
回答No.3

方程式でしょうか? その数列の続きはどうなりますか? 一応数列すべてに4をたすと -3,3、-2,2、-1,1,0 となります。ガウス記号を使おうか考えましたが純粋に数列でいくと、符号は頭にcos(πx)をつければよいので 3,3,2,2,1,1,0について考えると 階差数列0,-1,0,-1,0,-1 Bn=-1/2cos(πx)-1/2 元の数列An=3+ΣBk =3-1/2Σcos(πx)-1/2(x-1) =7/2-1/2(x)-1/2Σcos(πk) 大元の数列は cos(πx){7/2-1/2(x)-1/2Σcos(πk)}-4:Σはk=1からx-1までの和 確かめてませんし、全然正解だとは思えませんが。もうチョット条件があれば補足ねがえますか?

ityounomi
質問者

お礼

すごいですね!ありがとうございます。xの値が8まで変化したときまでがでればなんとか・・・。でも本当は、次のようになる方程式を導きだせると最高なのですが、無理とあきらめています。xの値は1ずつ変化。それに伴うyの値は、 -7,-1,-6,-2,-5,-3,-4,-17,-11,-16,-12,-15,-13,-14,-27,-21,-26,-22,-25,-23,-24,,-37,-31,-36,-32,-35,-33,-34, xの値が0~7まで変化したあと、yの値が+10されて同じように変化する。結局xの値が8個取得される毎に、次回のyの値は-10されながら 上記の決まりで決定していくという式ですが。あまりにも難しそうで。 可能でしょうか?

すると、全ての回答が全文表示されます。
  • banakona
  • ベストアンサー率45% (222/489)
回答No.2

#1です。xが整数以外のときにもyが値を持った方がいいですよね。という訳で2番目の答え。(といっても殆ど同じだけど) y=[(7-x)/2]cos(π(x+1))-4 >x≧0ではエクセルのint()と同じ・・・ と書いたけど訂正。x<0でもエクセルのint()と同じです。

ityounomi
質問者

お礼

ありがとうございます。エクセルのint()と同じというのは、エクセルには、これをすぐに出せる関数があるのでしょうか。

すると、全ての回答が全文表示されます。
  • banakona
  • ベストアンサー率45% (222/489)
回答No.1

方程式? 関数といった方がピンとくるけど・・・ 最初の-7のときのxの値を0とすると次のような例を挙げることができます。 y=[(7-x)/2](-1)^(x+1)-4 >数学から離れてもう、25年 ということなので解説を少し。[x]はxを越えない最大の整数。x≧0ではエクセルのint()と同じだと思っていいです。 ^はべき乗。(-1)^(x+1)は、x=0から-1,1、-1,1、・・・となります。 ただし上の関数は与えられた7点を通る関数の一例に過ぎません。他にも答えは色々あるでしょう。

ityounomi
質問者

お礼

For x = 0 To 7 y = ((7 - x) / 2) * (-1) ^ (x + 1) - 4 y = Fix(y) Cells(x + 1, 7) = y Next x Fixで小数点以下を切り捨てました!すると、yの値が期待したような値になりました! ただ、x=0のときy=0で、x=1のとき、y=-7となるといいのですが。

ityounomi
質問者

補足

ありがとうございます。実はエクセルで使用しようとしているので、エクセルにこれを簡単に出せる関数があるんであれば、最高なのですが。 int()の引数にはiを入れればいいのでしょうか? Dim y,i as integer for i = 0 to 7 y=int(i) next i ????????????? もしお分かりになるのであれば、ぜひ教えてください!

すると、全ての回答が全文表示されます。

関連するQ&A