• ベストアンサー

条件付き線形最小化問題を解くには?

ある関数がある制約条件下でどのような最小値をとるかを数値的に計算したいと考えています。 わかりにくいのですが、式を混ぜて書くと以下のような感じになります。 (1)実数W_kについてΣW_k * F_kを最小化したい (2)F_kは実数(or複素)定数で、与えられている (3)制約条件はΣW_k=1とW_k>=0 最小二乗法のように、||ΣW_k * F_k||を最小化することはできます。 ΣW_k=1という拘束条件を入れることもできました(LAPACKのZGELSSを使用しました)。 しかし、W_k>=0を入れた場合LAPACKのルーチンの中では該当するものが見当たりませんでした。 Mathematicaの実装ノートをみると改良Simplex法を使っているとか書いてありましたので、Simplex法を自分で実装しようかなとも思いましたが、もし既存の数値計算ライブラリで、上記のような最小化問題を解くことができるのならば、その方がいいと考えています。 何かご存知の方はいませんでしょうか? またSimplex法に関して、詳しい実装に関するWebサイト、論文、書籍等ご存知の方がいましたら、教えてもらえないでしょうか? よろしくお願いします

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

  • ベストアンサー
回答No.1

もし、 F_k は実数定数 最小化: ΣW_k * F_k 制約条件: W_k は実数,ΣW_k=1,W_k≧0 であれば、線形計画法になり、 端点は「W_k のどれか一つが1で他のすべてが0」以外に存在しませんので、 そのうちのどれかが解になるはずです。 どこか問題に間違いはありませんでしょうか?

atushi256
質問者

お礼

回答ありがとうございます。 > 端点は「W_k のどれか一つが1で他のすべてが0」以外に存在しない なるほど、言われてみればF_kが実数の範囲においては、確かにそうですね。気がつきませんでした。 とすると、F_kが実数であるという仮定は強すぎる仮定のようです。 F_kは一般に複素数でRe(ΣW_k * F_k)を最小化し Im(ΣW_k * F_k)の絶対値(二乗)を最小化 という問題に訂正します。

その他の回答 (1)

  • Tacosan
  • ベストアンサー率23% (3656/15482)
回答No.2

一般的には 「Re Σ W_k F_k の最小化」と「|Im (Σ W_k F_k)| の最小化」は両立しないような気がするんですけど, その場合にはどうすればいいんでしょうか?

atushi256
質問者

お礼

回答ありがとうございます。 たしかに両立しない場合が考えられますね。 何で気がつかなかったのか…。 「Re Σ W_k F_k の最小化」である様な{W_k}の中で「|Im (Σ W_k F_k)| の最小化」と考えると、kts2371148さんのおっしゃられたように自明な解一つになってしまいますし。 Σ W_k F_kにおいてW_kも複素数でΣ W_k=1という条件下で||Σ W_k F_k||を最小化だとすると、一般には最小値が存在しなくなってしまいますし。 うーん、手詰まりです。少なくとも、こういう種類の最小化問題では、「自明な解」か「一般には最小値は存在しない」ということが答えのようですね。もう一度問題設定を考え直すことにします。ありがとうございました。

関連するQ&A

  • 3次曲線の束縛条件のとき、2次式の最小値

    x,y は実数で,x^3+6xy+8y^3=1 のとき,x^2+y^2+2y の最小値と,そのときの x,y の値を求めよ. (アイデア1) x^3+6xy+8y^3=1をパラメータ表示しようと思ったのですが・・・。 (アイデア2) x^3+6xy+8y^3=1 図示し、x^2+y^2+2y=kと置き、x^2+(y+1)^2=k+1と共有点を持つ条件を幾何学的に考えようと思ったのですが・・・。 (アイデア3) x^3+6xy+8y^3=1 と x^2+y^2+2y=k からxもしくはyを消去し、解を持つための条件を代数的に考えようと思ったのですが・・・。 (アイデア4) ラグランジュの未定乗数法で、 f(x,y,λ)=x^2+y^2+2y+λ(x^3+6xy+8y^3-1) とおき、 ∂f/∂x=2x+λ(3x^2+6y)=0, ∂f/∂y=2y+2+λ(6xy+24y^2)=0 ∂f/∂λ=x^3+6xy+8y^3-1=0 を連立して解こうと思ったのですが・・・。 いずれも計算がストップしてしまいました。 計算の続きができるでしょうか? 別のアイデアはあるのでしょうか? 一般の3次曲線の束縛条件が与えられたとき、一般の2次式の最小値(最大値)を与える明示式はあるのでしょうか?

  • 最大、最小の問題で

    (1)条件x^2+y^2=4(x,yは実数)のもとで、2x+yの最大値、最小値を求めよ (2)正の数x,yが、2/x+3/y=1を満たすとき、xyの最小値を求めよ という問題が分からないので解説してください。 (1)は、2x+y=k(kは定数?)とおくのですか??

  • 数1・A 条件つき最大最小問題

    こんばんは、過去に昭和薬大で出題された問題だそうですが、 Q.  x二乗+y二乗=1のとき  3x+4yの最大値と最小値を求めよ。 という問題で、一応定石どおりに解けば (3x+4y=kなどと置き、文字を消去&代入後  判別式によって最大最小を求める) 最大値=5、最小値=-5 になることは理解できたんですが、疑問が2つあってどうも 納得できません。 1つは、問題の式を見て直感的に、例えば x=1、y=1でも条件は成り立ち、それを代入すると 3x+4y=7になりそうじゃないですか? この値が求めた最大値=5よりも大きいので、一体どうなっているのか ????というもの。 もう1つは、この問題はある問題集に転載されているもので、出題時 のママかどうかは分からないのですが、条件の中に 「xとyはそれぞれ実数」といった文が含まれていないことです。  ↑この条件が書いてなかったら判別式が使えないじゃないですか?? でも実際には判別式を使って解く方法しか参考書には書いてなくって、 それで解くとちゃんと答えが出ます。 ?????これは「xとyを実数とする、と仮定して」解くという ことなんでしょうか??? 不器用な質問で申し訳ありません。 頭こんがらがりそうです、よろしくお願いします。

  • 複素ベクトルの微分、最小二乗誤差法(MMSE) 

    最小二乗誤差法を用いて評価関数を最小にする値を求めようとしています。 この評価関数が複素ベクトルと複素行列で構成されているので微分できずに困っています。 何冊か本を読んだのですが、この複素ベクトルで構成された式を微分する際、なぜかベクトルの共役をとって微分していました。 なぜ共役をとって微分するのかが全く分かりません。 どなたか知っている人がいらっしゃいましたらよろしくお願いします。 例:J=w'Rw-w'r-r'w ・・・(1) J:評価関数 w:ウエイトベクトル R:行列 r:ベクトル ':複素共役転置 この(1)を最小にするようなwは、 Jをwで微分してその値が0という条件を使うと思います。 しかし大抵の本のやり方はwの共役で微分していました。ここが分かりません。何かメリットでもあるのでしょうか?

  • mathematicaの特殊関数productlogについて

    mathematicaに登場する特殊関数でproductlogのことで質問があります。 mathematicaの中でproductlogのことを「重積対数関数」と説明して合ったのですが,これを数学の専門書(複素関数論や関数論)で調べてみても載っていません。 mathematicaだけで使われている言葉なんでしょうか? できたら,productlogの計算法(z=w・e^wでwを求める方法)を知りたいのですが,わかる方教えてください。

  • 【問題】kを実数として, f(x)=x^2-2kx+(1/5)*(2k

    【問題】kを実数として, f(x)=x^2-2kx+(1/5)*(2k-1)*(4k-3)とおく。方程式f(x)=0が実数解α,β(α≦β)をもつとき (1)α,βがα≦1≦βを満たすようにkの値の範囲を定めよ。 (2)(1)の場合にf(x)の最小値g(k)がとりうる範囲を求めよ。 (1)はf(1)≦0という条件しか思いつきません^^;あとこれに,なにか付け加えたらいいような気がするのですが…これから進ません^^; どなたかよろしくお願いします。

  • 非線形最小二乗によるコールコールパラメータの求め方

    非線形最小二乗法によりコールコールパラメータを求めたいのですがよくわかりません。 詳細は以下の通りです。 コールコールの式ρ(iω)=ρ(0)*(1-m*(1-(1/(1+(iωτ)C))))の、複素比抵抗ρ(iω)が測定データであり、ωが測定周波数でこれが既知の値となっています。 ここから ρ(0):直流比抵抗 m:充電率 τ:時定数 c:周波数依存係数 の4つのパラメータを非線形最小二乗法(修正マルカート法など)を用いてρ(iω)=ρ(0)*(1-m*(1-(1/(1+(iωτ)C))))にフィッティングさせて求めたいのですが上手くいきません。コールコールの式のように複素数の式であり、さらにiにc乗がかかっている場合はどのように考えたらいいのでしょうか?例えば 誤差二乗和(χ2)→実部と虚部に分けて考え誤差二乗和を求めるときに足すのか? ヤコビアン行列→複雑な式を無理やり各パラメータで偏微分するのか? などです。(上記に挙げた考え方自体間違っているかもしれません。。。) どなたか複素インピーダンスなど複素数の式を数値計算する時の考え方など、経験がある方がいらっしゃればアドバイスして頂きたいです。宜しく御願い致します。

  • 数学二次関数 最小値の最大・最小

    mを実数とする。xの関数 f(x)=X^2+3x+m の m≦x≦m+2 における最小値をgとおく。 (1) gをmを用いて表せ。 (2)mの値がすべての実数を変化するとき、gの最小値を求めよ。 という問題なのですが(2)の答えが-6(m=-4)になると書いてありました。 ですがgが問題に書いてある通りの条件なら-6にはならないと思いました。(f(x)上にy=-6という点は存在しないので) この考えはどこが違うのか教えていただきたいです

  • 数学1、2次関数の最大値・最小値

    こんにちは。 解答はあるのですが、どうもなんでそうなるのか分からない部分があります。 どなたかお助けいただけますか? 2乗はタイプできなかったので「"」で表しています。 問:「(X"-3X+3) ÷ (X"-2X +1)の最小値をもとめよ。」 解答:「与式=K とおき、Kの最小値をもとめればよい。 両辺にX"-2X"+1をかけて整理すると、 (K-1)X"-(2K-3)X +K-3=0 ・・・(1) (1)が実数解をもつための、Kの値の範囲を考える。(← ここです) I) K=1のとき・・・ II) K=1以外のとき・・・   」 (1)の最小値をもとめることが答えにつながることはわかりますが、 実数解をもたない場合でもグラフは書けることを考えると(絵を添付しました)、 なぜここで「実数解をもつためのKの値の範囲」という条件が 出てくるのか良く分かりません。 (こんな書き方で理解していただけるでしょうか・・・。 不明でしたらまた質問しなおします。)

  • 条件付き最大値・最小値

    条件 {x^(2/3)}/4+y^(2/3)-1=0 のもとで f(x,y)=x^2+y^2 の最大値、最小値とそれらを与える(x,y)を全て求めなさい。 という問題です。私はラグランジュの乗数法を使いました。 以下、私の解答です。 φ(x,y)={x^(2/3)}/4+y^(2/3)-1=0 とおく。このとき、 ∂φ/∂x={x^(-1/3)}/6=0 …(1) ∂φ/∂y=2{y^(-1/3)}/3=0 …(2) とすると、(1)よりx=0、(2)よりy=0である。しかし、 φ(0,0)=-1≠0 である。よって、φ=∂φ/∂x=∂φ/∂y=0を満たす(x,y)は存在しない。 F(x,y,λ)=x^2+y^2-λ[{x^(2/3)}/4+y^(2/3)-1] とおく。このとき、 ∂F/∂x=2x-λ{x^(-1/3)}/6=0 …(3) ∂F/∂y=2y-λ2{y^(-1/3)}/3=0 …(4) ∂F/∂λ=-{x^(2/3)}/4-y^(2/3)+1=0 …(5) (3)より、λ=12x^(4/3) これを(4)に代入して、 y^(4/3)=4x^(4/3) ここで、t=x^(2/3)、s=y^(2/3) とおく。(s,t≧0) すると、 t=±2s s,t≧0より、t=2s また、 (5)⇔s+4t-4=0 これにt=2sを代入して、 s=4/9⇔x^(2/3)=4/9 ∴x=±8/27 t=8/9⇔y^(2/3)=8/9 ∴y=±(16√2)/27 と、ここまで計算しましたが、この(x,y)をf(x,y)に代入しても、 f(x,y)=x^2+y^2 であるので、最小値も最大値も出ません。 どこかで計算ミスがあるのでしょうか、もしくは置き換えのまずいところがあったのでしょうか。 どなたかわかる方、よろしくお願いします。