MATLABによる制約付き最適化問題の解き方

Matlabでは、制約付き最適化問題を解くために組み込み関数のfminconを使用できます。

x = fmincon(fun, x0, A, b, Aeq, beq, lb, ub, nonlcon) を日本語でネイティブに言い換える、選択肢は1つだけ必要:

objetivo 関数は fun、最適化変数の初期値は x0、線形不等式制約行列とベクトルは A と b、線形等式制約行列とベクトルは Aeq と beq、最適化変数の下限と上限は lb と ub、非線形制約関数は nonlcon です。

具体的な手順は次のとおりです。

  1. 例えば、fun = @(x) x(1)^2 + x(2)^2 と目標関数 fun を定義する
  2. 初期値x0を定義します。例えば、x0 = [0,0]。
  3. 線形不等式制約行列Aとベクトルbを定義する。例: A = [1,1], b = [1]
  4. Aeqは線形等式制約行列、beqはベクトルであり、例えばこのように定義される。Aeq = [1,1]、beq = [2]。
  5. 最適化変数の下限と上限をそれぞれlbとubと定義します。例えば、lb = [-1,-1]、ub = [1,1]
  6. 非線形制約関数nonlconを、次のように定義する: nonlcon = @(x)x(1) + x(2) – 1
  7. fmincon関数を用いた最適化を行います(例:x = fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon))。

最適化結果xには、制約条件を満たす最適解が含まれる。

コメントを残す 0

Your email address will not be published. Required fields are marked *


广告
広告は10秒後に閉じます。
bannerAds