教えて!gooにおける不適切な投稿への対応について

循環参照が出た時に反復計算を有効にすると、
0にならず、答えが返ってきたのですが、
そもそも反復計算って何をしてくれてるんでしょうか?

計算を繰り返し行うって聞いたのですが、
循環参照を含んだ数式のままで、どうして答えを
返すのですか?

無知ですみません。
お詳しい方、教えてくださいませ。また参考サイトがあればぜひお願いします。

gooドクター

A 回答 (2件)

反復計算は、式の収束値を求めるのに使えます。

ですが正直、一般の人が仕事などで使いたいと思う機会は、あまりなさそうです。また、あまり分かりやすいともいえないかも。更には、何度も再計算する場合、途中の値が保存されないので、危険も伴います。

ただ、再計算のたびに値が変化していくことを利用して、「Excelで遊ぶ」目的で使うというのは、ネット上などで見かけます。例えば、「変化の最大値」がデフォルトの0.001に設定されている場合、

=a1+1

がA1セルに入力されていれば、循環参照なので反復計算されるのですが、再計算のたびに必ず、1ずつ増加していくことになります。何かこのセルを使って、リンク貼り付けの図とかグラフとかの表示を再計算のたびに変化させることもできるでしょう。あるいは将棋やトランプのように、一手一手、時が流れ、記録されていくゲームに使っているのも見たことがあります。RAND関数だけだと、ランダムにしかなりませんから。

ご関心があれば、インターネットで検索してみてください。
    • good
    • 3

循環計算の本来の使い方は、1回計算した結果を次の計算に使う方法です。


このとき計算式を工夫して、2回目の計算結果は前回計算した時よりも「変化幅が小さく」なるように仕込んでおきます。
上手く工夫できていれば、繰り返し計算が進むうちに変化幅がどんどん小さくなっていき、最後にはほとんど変化がなくなります。これを「収束した」と言います。
反復計算を行う目的は、この収束値を求めることです。

エクセルの反復計算のオプションには
 反復の回数
 収束を判定する条件として変化の最大値
をセットで設定できるようになっています。



計算例1:ダメな計算
反復計算にチェックを入れます
A1セルに
=A1+1
と記入し、Enterします

収束させる工夫をなにもしていないので、100まで行って反復計算の回数制限で終了し、そこで止まります


計算例2:意味があるかどうかはさておき、収束する例
反復計算にチェックを入れます
A1セルに
=1+A1/2
と記入し、Enterします
変化の最大値よりも「小さい」変化となった時点で反復計算が終了します。


勿論他にも使い方はいろいろあります。目的に応じて「正しく」利用します。



#参考
エクセルでは、わざわざ「反復計算」のテクニックなど使わずとも
1行目に1回目の計算式を並べる
2行目で、1行目の計算結果を使って2回目の計算をする数式を並べる
2行目を下向けにつるつるっとコピーする
すると
3行目で2行目の計算結果を使った計算結果が並び
4行目に3行目の計算結果を使った計算結果が並び
 :
最後には収束値が並ぶ
といった具合に、全く同じ計算をもっと安全に行う事もできます。
    • good
    • 3
この回答へのお礼

わかりやすい説明ありがとうございます!

お礼日時:2012/08/01 20:41

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング