• 締切済み

Excelソルバー相当のライブラリはありませんか?

Excelソルバー http://office.microsoft.com/ja-jp/excel/HP051983681041.aspx を離散データに対する最小二乗法による曲線推定に使っています。アルゴリズムはGRG2(Generalized Reduced Gradient)で、少し調べたところ、準ニュートン法や共役勾配法も選択できるようです。 このExcelのソルバーは大変有効ではあるものの、今は手作業で推定しなければならないため、オンライン化(phpからコール)したいと思っています。 Excelソルバーに相当する、準ニュートン法や共役勾配法等の非線形最適化プログラムのフリーなCソースはどこかにあるでしょうか?できればphpからコールしたいのですが、なければCソースをなんとかしようと思っています。 ここ http://www.sist.ac.jp/~suganuma/kougi/other_lecture/SE/opt/nonlinear/nonlinear.htm#2.2 でソースを見つけましたが、偏微分関数も与えなければならないようです。Excelソルバーでは離散データのみを与えます。 どなたかご教示いただければ幸いです。

みんなの回答

  • rabbit_cat
  • ベストアンサー率40% (829/2062)
回答No.1

Excelのソルバはあんまり使ったことがないので、どんな機能があるのかよく知りませんが。 ここらへんから探してみては。 http://www.numerical.rl.ac.uk/external/optimization.shtml

mocapapa89
質問者

お礼

提示いただいたリンク先が多いためにまだ全部は調べきれていませんが、参考にさせていただきます。 ありがとうございました。

関連するQ&A

  • Excelのソルバーのアルゴリズムに関する質問

    Excelのソルバーのヘルプの機能のコピぺです。 Microsoft Excel のソルバー ツールでは、テキサス州オースティンのテキサス大学の Leon Lasdon 氏とクリーヴランド州立大学の Allan Waren 氏が開発した GRG2 (Generalized Reduced Gradient) 非線形最適化コードが使用されています。 線形問題と整数問題では、Frontline Systems, Inc. の John Watson 氏と Dan Fylstra 氏が実装した、束縛変数を用いたシンプレックス法と分枝限定法が使用 されています。ソルバーが使用する内部解決プロセスの詳細については、以下の連絡先にお問い合わせください。 調べてみたのですが、非線形用と線形用と整数用の3種類があるということなのですか? そしれぞれぞれのアルゴリズムが異なるということなのでしょうか? それと最後の内部解決プロセスというのはいきなり出てきているのですが、 シンプレックス法と分枝限定法とどういう関係にあるのでしょうか? よろしくお願い致します。

  • 非線形計画法について

    非線形計画法を現在勉強しています。 1. どういうときに線形でどういうときに非線形となるのか良く分かりません。 例えば、ある従属変数yを線形関数f=Σcx で表したいときにパラメータcの絶対値の和が定数bより小さくなるという制約のもとで、yとfの二乗誤差を最小化するパラメータcを求める問題を考えます。 この場合、制約条件はcについて線形ですが、最小化したいのは、yとfの二乗誤差なのでこの場合は非線形ということになるのでしょうか?それとも関数fはcに関して線形関数なので、線形計画法で解くことになるのでしょうか? 2. 以下のサイトで勉強しているのですが、このサイトにある楕円型の等高線はおそらく、従属変数yと目的関数fの誤差を表しているのだと思うのですが、なぜ「楕円」になるのですか?二乗誤差を考えるのならば、「円」になるのではと疑問で仕方ありません。 http://www.sist.ac.jp/~suganuma/kougi/other_lecture/SE/opt/nonlinear/nonlinear.htm#2.2 疑問が晴れずにもやもやしています。 回答もしくはアドバイス、よろしくお願いします。

  • C/C++での最小二乗法について

    いつもお世話になっております。 初めての質問で不備があるかと思われますがよろしくお願いします。 現在Excelのソルバー機能で、測定した値とは別に 計算式f(x)で求めた推定値との残差二乗和((測定値-推定値)^2の和)から 計算式f(x)の変数a,bを算出しています。(変数a,bの初期値は適当な値を設定) このソルバーでの最小二乗法の計算をc/c++にて実装するにはどのようにすれば良いのでしょうか。 (ソルバー機能では目的値を残差二乗和、変化対象を変数a,bとし、準ニュートン法より最小値を求めています。) 御教授よろしくお願いします。

  • 制約つき非線形最適化

    次のような制約つき非線形最適化問題を数値的に解きたいと思っています。 minimize Σ(y_n-f(n,a))^2 subject to G(f(n,a))=0 具体的な関数形は必要なら補足します。 (1)ラグランジュ未定乗数法により解くことを考えます。 ラグランジアンはL=Σ(y_n-f(n,a))^2-λG(f(n,a)) ∂L/∂a=0、∂L/∂λ=0を連立してNewton法で解きます。 しかし、Lは複雑な形をしているので、1階微分程度がせいぜいです。 そこでNewton法にでてくるヤコビアンは数値的に求めます。 この考え方でプログラムすると、どうしても収束しません。 どうしたらよいでしょうか? また、λの初期値はどのように決めたらよいでしょうか? (2)excelのソルバーに同じ問題をやらせると、 あっさり解を出します。 ソルバーはどのようなアルゴリズムを用いているのでしょうか? (3)このような問題に適用できる、その他の手法がありましたら、教えてください。 以上、お答えできる問だけで結構ですのでアドバイスをお願いします。

  • 変化させるセルが変化しない

    お世話になります。 マクロ側のソルバー機能を利用して係数を推定しようと考えています。 係数の置き場所はワークシートです。計算値、実測値も同様です。 ただし、ワークシートに打ち出す計算値は外部dllで行います。 コードの概要は以下の通りです。 sub cal call 外部dll end sub optsolver For i = 1 To 100 Call cal SolverOk SetCell:="E18", MaxMinVal:=2, ValueOf:="0", ByChange:="D3:D4" SolverSolve UserFinish:=True SolverFinish KeepFinal:=1 Next i end 1回目のステップではワークシート上に計算値が得られるのですが、 2回目以降はセルの値(係数や計算値)が更新されませんし、結果として係数も推定できません。 100回くらい画面がちらついて、終わりの表示もなく終わります。 ここでいう係数と計算値は連動していないとソルバーは使えないと どこかで聞いたことがあるのですが、このためでしょうか。 (連動って、設定の数値を変えれば自動で追随することだろうとおもいます。) 使用環境は winxp pro sp2 excel 2003 です。

  • エクセルソルバー

    教えて下さい。 現在、未知数4つをソルバーを用いて求めています。 このソルバーを使用して未知数を求める方法を他人に教えてもらって使用しています。このソルバーの中でいったい何が行われているのか全くわかりません。何が行われているのか、教えて下さい。 また、パラメータの設定のところで、いろいろと設定する項目があります、このあたりはいったい何をどのように設定すれば良いのでしょうか?「線形モデル」のところにチェックを入れると、「線形モデルでない」とメッセージが出ます。また準ニュートン法とかいろいろあるのですが全くわかりません。教えて下さい。

  • エクセルのソルバーについて教えてください

    いつもお世話になっています。 エクセルでソルバーを実行すると結果を表示するウインドウのところで「シナリオの保存」というボタンがありますが(2003も2007も同様)、これはどのようなときに使用するのでしょうか? ご存知の方がいらっしゃいましたら教えてくださると嬉しいです。どうぞよろしくお願いします。

  • エクセル ソルバーを教えてください

    今考えているのは、x,y座標上に2点を結ぶ直線があります。その二点の値は5500と3000で、二点のx,yはわかっていて、x,y座標は(0.3,0.5)と(0.44,0.40)です。 この二直線を内分して、5500,4500,4000,3600,3000というように分割しました。この4500,4000,3600のx,y値をソルバーで求めたいのですがどのようにすればいいのかわかりません。教えてください

  • ソルバー  エクセル

    変化させるセルには、0か1を入れたいのですが、下記のようにやっても、整数にならず、0.2470889というように小数点があるものが入ってしまいます。 a2:a10 <=0 a2:a10 = 整数 a2:a10 >=1 どうやったらよいのでしょうか?

  • Excelのソルバーについて

    Excelでソルバーの制約条件をつけるとき セル参照と制約条件の間に、演算子を決めるところがあり そのリストを見ると、「データ」(隠れてしまっているので・・たぶんデータなんだと思うのですが) というのがあり、それを選ぶと制約条件が「バイナリ」となりますが この「バイナリ」というのはどのような制約条件のことなのでしょうか? よろしくお願いいたします。