[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『ソルバーのレポートのバグ』(ゆう)
Excelのソルバーを使用していて、解答レポートを作成しました。そこで変数セルの所を見ているとシートの文字(例:$B$3)だけが書かれており、名前と計算前の値と最終値の記載がありません。原因と解決方法がわかる方、ご教授のほどお願い致します。
< 使用 Excel:unknown、使用 OS:MacOSX >
事象が再現できる簡単な例を示すことはできますか?
(xyz) 2023/07/21(金) 08:16:23
min: f(x,y,z)=(x - y^2)^2 + z^2
sub: g(x,y,z) = -x -2y + z + 3 <= 0
h(x,y,z) = -xy + z + 1 <= 0
x, y, z>= 0 初期解(5,5,5)
GRG法で解きます。
レポートでは以下の様になってます。
変数セル
セル 名前 計算前の値 最終値 整数 $B$1:$B$3
(ゆう) 2023/07/21(金) 12:06:16
うーん、再現しませんね。 こちらWin10,Excel019ですけど、正常に解答レポートが出力されました。 macですか。 残念ですが、分かりかねます。他の方からの回答を待ってください。 (xyz) 2023/07/21(金) 12:25:43
もう一度最初から実行して再現するようでしたら、マイクロソフト社の質問掲示板に質問したらどうでしょうか。 バグであれば、ユーザーではどうにもなりません。 開発元ないしその周辺にいる方々に確認するのがよいのではないかと愚考します。
(xyz) 2023/07/21(金) 15:54:10
それは絶対参照を表す記号です。同義です。 この場合、それは結果に影響しないと思います。 もっと深いところでバグっていると思われます。 (xyz) 2023/07/21(金) 16:10:42
式のセル <= 0を入れてるセルにしてますが、ここで起きてる可能性がありますか。
(ゆう) 2023/07/21(金) 16:13:35
あ、ソルバーの結果は得られているが、その内訳としての回答レポートがおかしいという話と 思っていましたが違うのですか。
結果レポートは出さなくても、自動的に、B1:B3のセルに結果が表示されるはずですが。 そこはどうなんですか? (うろ覚えですが、1,1,0のような数値だったと思いますが)
(xyz) 2023/07/21(金) 16:18:45
1.0000002E-8は、1.0000002×10の-8乗ということですから、 殆ど小さい数値で、0と見なせます。 浮動小数点の関係でそのような結果になることがあります。
(xyz) 2023/07/21(金) 20:42:31
もう消してしまったので勘弁して下さい。 あなたの結果は?
(xyz) 2023/07/21(金) 21:56:21
何かの課題なんですか? 簡単な算数でも求まりそうですけど。 求めているのは何ですか?
(xyz) 2023/07/21(金) 22:19:59
解答レポートは、考え方を説明したレポートのようなものと考えているんでしょうか? 違いますよ。 (xyz) 2023/07/21(金) 23:05:26
バグという見立てを修正し、ソルバーの使い方に慣れたでしょうから、 私の役目は果たしたと思います。
# 最初からバグと決めつけた質問でしたが、 # 単に、ソルバーの操作が出来ていなかっただけじゃないですか? # 何の科目の課題か知りませんが、どんな講義を受けたかでしょう。 # 質問にあたっては、そうした説明が必要でした。
以下、余談です。
【最小値を求める算数】 α >= 1 という任意の実数をとって、 x =α^2 y =α z = 0 とすれば、 f = 0 と最小値を実現し、しかも g = 4 - (α+1)^2 <= 0 h = 1 - α^3 <= 0 となるので条件を満たします。
ですから解は無数にありえます。 (x,y,z) = (1,1,0) も解ですし。 (4,2,0) も解です。 つまり、最小値0を実現する解は無数にあるのです。 ------- f(x,y,z) の最小値は0であるが、課題提示者は、ソルバーの計算上できるだけ小さいものを求めているのかもしれませんし、 x,y,zもできるだけ端数のない丸まったものを求めているのかもしれない。 (課題の意図は不明です。少なくともこの場では説明されていません。)
ソルバーで、(x,y,z) = (1,1,0)という綺麗な計算結果を実現することもできます。 オプションを色々工夫すればよい。(ソルバーのオプションを変えてトライしてみて下さい)
計算結果が(1,1, 0 ) f = 1.4377E-28 g = 0 h = -1.9984E-15 とすることができます。
# ちなみに、この関数fは Rosenbrockのbanana関数という割と有名なものの特殊形ですな。 わたしは、これで一件落着とします。 以上。 (xyz) 2023/07/22(土) 09:58:40
> ソルバーで、(x,y,z) = (1,1,0)という綺麗な計算結果を実現することもできます。 これは表示だけの話でした。失礼。実際は小数点以下に数値を持っていました。 x=1.00000000000001 y=0.999999999999997 z=0 いずれにしても、誤差の範囲内の話でしょうね。
(xyz) 2023/07/22(土) 11:58:38
数理最適化という科目なんですか。じゃあ自分でトライしないといけませんね。
なお、以下は、関連したメモです。 1.「ソルバーで、(x,y,z) = (1,1,0)という綺麗な計算結果を実現することもできます。」と書きましたが、 やはりオプションを工夫することで、そのようにできました。(最小値も0となりました) 2.理論上の大域最適解は無数にあるにもかかわらず、なぜ(1,1,0)以外の解がでてこないのか。 マルチスタートや制約条件との関係である程度の理由が説明できないといけないでしょうね。 (1,1,0)以外の解も求めることもできます(すべてでは勿論ありません)。 変数の上限下限の設定を工夫する必要はあります。 3.なお、(5,5,5)を初期値とし、マルチスタートを使わない場合に、ExcelのGRGでは、なぜ(1,1,0)という結果が出てくるのか、 私にはわかりませんでした。 (Excelではない、別の非線形ソルバーでは、(5,5,5)を初期値として計算すると、以下のような結果が出てきますね。 Objective value: 5.014009806768682e-9 x:32.16933334443544 y:5.671801595975405 z:7.080967311506403e-5)
数理最適化の講義であれば、Excelの操作ができればOKということではなく、 たぶん講義でそうした点に説明があったかもしれませんね。 上記 3.についてご存じであれば、教えて頂きたいですね。
(xyz) 2023/07/23(日) 12:50:47
>無数にあるのは局所的最適解ではないのですか ということは、大域でみると、どこかに0より小さい解があるんですか? あるなら教えて下さい。
なお、問題は一字一句正確なものですか? 実は、一部変更してましてということはないんですね?念のため。 (xyz) 2023/07/24(月) 09:42:00
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.