Matlabについて質問
制約条件付きの最大化は、どのようにプログラムを書けばいいのでしょうか?
具体的には、fortranでは、以下のように書かれているのですが、、、
(以下のページの(3.家計行動)
http://www8.plala.or.jp/uemura/sim2.html
を参照しています。)
DOUBLE PRECISION ALPHA,BETA,PX,PY,I,X,H,MAXU,Y,U
ALPHA=0.4 !α
BETA=0.6 !β
PX=3 !px
PY=2 !py
I=100 !予算
X=0 !xの初期値
H=1 !ステップ幅
MAXU=0
100 Y=(I-PX*X)/PY !予算制約
U =X**ALPHA*Y**BETA !効用関数
IF (U.GE.MAXU) THEN
MAXU = U
X = X + H
GOTO 100
END IF
IF (U.LT.MAXU) THEN
X = X - H
H = H / 10
IF (H.LT..000001) GOTO 200 !収束判定
X = X + H
GOTO 100
END IF
200 WRITE(*,*) 'X*= ',X
WRITE(*,*) 'Y*= ',Y
WRITE(*,*) 'U*= ',U
END
これを実行すると、次のようになる。
X*= 13.333332999999990
Y*= 29.999999000000010
U*= 21.689437517636550
補足
その通りです🙇!