找回密码
 注册
关于网站域名变更的通知
查看: 500|回复: 3
打印 上一主题 下一主题

matlab优化求解的问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2021-1-11 11:04 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
关于matlab优化求解的问题请教大家;程序报错截图如下,我分析报错的原因是迭代点(s,d1)改变时,(expect1,expect2)未改变,具体问题描述如下:# U* @7 m5 A9 ^; \3 {
1.expect1,expect2是s,d1的函数,当fsolve函数按照优化算法找到新的点(s',d1')时,我的问题里时需要expect1,expect2也变化,这样fsolve的目标函数就也变化了;
8 J  P) k, X2 g& }5 x& E2.根据上述1的描述,这个优化问题是否应该将(expect1,expect2)也纳入优化求解目标中去?这样该如何实现?
5 \& f- v# I3 Q$ F% H+ ~clc;
+ L8 s8 c9 q9 X6 V' o# tclear all;
2 d, ?: f( m: X2 F. d( c  h%%%  赋值外生给定的参数  %%%$ G$ w. ]- T: L7 I5 w; _5 y
wn=0.3;
& P2 S/ j: t$ `: e. lwt=1-wn;
- {* U5 }+ a' L! M- Xr=0.05;
( Y8 f- e. [9 C& B( Zbeta=1/(1+r);8 m( j  q& @& K% h7 H
epislon=0.05;
; g3 x, H# |: Dphi=0.3;
! b9 U' r0 J  P3 Ly1=1;
/ R# q; X( R9 @' Zyn2=1;
) I1 x0 L+ P  R* @7 Ty2mean=1;! E8 G: m+ O7 J( W% q$ ]
y3=1;3 f/ M" H! n  \7 T; _: L
theta=0.9;
9 H1 L. j+ s8 s& L$ t
* O' b- ?  Y  m4 y
. B! {! _8 n. ^) O( f# _
% 赋值(y2,s,d1)
* T- u* ?! I, ?4 P! ?! Wy2=0.95:0.01:1.05;
  p; j( T5 O2 ps=0.1; %给s,d1的任意初值7 W% W: c! N# a+ ~
d1=0.1;1 g1 i" B3 u: G5 T& a: m8 `3 `
x0 =[s,d1];# [: C' J2 M5 B% A- I

: `2 f; ^. X6 W( {# Y
* Q7 j3 y: z+ h/ G; }+ ]
%在这个for循环里得到均值expect1,expect2,改变(s,d1),均值expect1,expect2也改变4 J. t3 c0 Q6 N

; e  z" e/ V2 b1 Z& r/ L: r/ `; E) b. c
( n/ y8 u3 O; m, e- y) r( B
for i=1:1:length(y2);: [* k. m2 [# L- t( p7 d6 b, R5 H
s=0.01;) m4 U: `% V9 N3 e
d1=0.1;! U/ L4 D2 @% J! j: p2 a

8 D; J. r6 C; a: z" m
( M8 t4 O1 _- F* t( O8 ~& M7 K
%%% 判断是否紧约束 %%%' h' e& Y2 g$ ~+ [
standard(i)=y2(i)*((beta/(1+beta)+phi/wt/(1-phi*wn/wt))-y3/((1+beta)*(1+r)))/(beta/(1+beta)+phi*wn/wt/(1-phi*wn/wt));) X, Y  O* z. m
check(i)=d1/(1-s);3 }. ]0 U/ ~) L( [9 X7 I: A2 u
if check(i)>standard(i)
2 @; Y9 W; g  V7 v    ct2(i)=((1-s)*y2(i)-d1+phi*(1-s)*y2(i))/(1-phi*wn/wt);
" J+ U$ P6 k& ~/ C" j8 G    d2(i)=phi*(1+r)*(wn/wt*ct2(i)+(1-s)*y2(i));
( G1 E& ]5 H' v& [2 |+ |6 b    ct3(i)=(1-s)*y3-d2(i);
4 }' r4 a: e2 \! |    mu(i)=wt/((1-s)*y2(i)-d1+d2(i)/(1+r))-beta*wt*(1+r)/((1-s)*y3-d2(i));
9 M" Y4 u2 F- _6 d   
$ S: Z' I# Z0 `8 Relse
  S7 q  e" H" V: R. u    ct2(i)=((1-s)*y2(i)-d1+(1-s)*y3/(1+r))/(1+beta);6 F: i! X- o/ G3 k1 m2 n
    d2(i)=((1-s)*y3-beta*(1+r)*(1-s)*y2(i)+beta*(1+r)*d1)/(1+beta);
9 d" n$ a7 n& q6 K$ Q6 S1 y! ^" k8 C    ct3(i)=(1-s)*y3-d2(i);
  _: n! _' r8 T7 w& g1 @7 b1 R. z% k4 o' L' O7 H4 J' d

* o" y# ?/ c2 D  \0 K- C1 m4 w  G) v    mu(i)=0;9 j# o5 x5 l! f; i
end
7 C* [, {# D5 }; q, s, G* \e1(i)=wt/ct2(i);%每给定一个y2(i),计算得到一个e1(i),e2(i)
1 W; O5 w6 d* }# q# v6 N* a& je2(i)=wt/ct2(i)*y2(i)+mu(i)*phi*y2(i)+beta*wt/ct3(i)*y3;# P1 p" }/ O3 y4 X: k
$ ], C$ Y( s6 Z/ e+ @. V2 |* E

2 s! Z2 G' H! V% O2 T%%%求均值%%%
  W0 E8 B; y/ Q* _5 h  {0 Iexpect1=mean(e1(1,:)); 2 G! M+ |& y2 R5 }4 t9 k
expect2=mean(e2(1,:));
9 W% |# s) l: o7 ?3 I$ Q+ Z- s# |end* U5 z4 C" l$ P3 J( q: t
$ U1 Y8 Q( U+ H0 H
# ?- t) N/ _+ c9 Y+ `4 }: o; Q
%我的问题中,expect1,expect2实质上是s,d1的函数- ], ~! z& s9 m6 n- |
%在用fsolve优化求解的时候,每迭代一个新的(s,d1),都应该运行一次上述for这个循环,得到新的expect1、expect2再进行优化求解,  _; f- [9 @% b' ]; O& R
%也即(s,d1)变化时,expect1、expect2也要变化,如此fsolve的目标函数也变化
! U# y( Y$ m) O! N$ ^' f%这样一个问题没有编程思路,请求大家给予指导,如果我的问题没有表述清楚,十分欢迎追问,谢谢。9 I. F' I. m  K. C# o& E
' X2 l* c3 f3 C/ c

) w, v" i. B! M7 v) a[x,fval,exitflag,output,]=fsolve(@(x)foc(x,expect1,expect2),x0);
# c* ]2 W, B+ c( k3 x& b1 j' R8 J* z2 L0 |1 {

' [6 C7 {! `2 `9 m2 efunction f=foc(x,expect1,expect2)+ b0 z. L6 Q/ y4 b. ]1 l- ?1 n
wn=0.3;: H; p6 @. t- o1 f! i1 P- t
wt=1-wn;
2 C" Q  k; a& `6 }% `7 Ur=0.05;
( b9 E( P% `/ h  h  ^7 j9 Abeta=1/(1+r);  x& R5 s. @+ q, E) }
epislon=0.05;2 E$ K: P5 S4 p$ R$ f9 A2 q5 N- N
phi=0.3;2 b  p, O. c; y3 Q
y1=1;
8 Y6 @6 r: r% p# E5 W6 N; Yyn2=1;
6 P' _  K. d! F2 D. yy2mean=1;
. H. |- c2 s- E( {8 w3 ny3=1;' U9 r  l. e7 C9 \
theta=0.9;" @/ q5 \& |, J  m) K5 ]
s=0.01;. P' w8 o: G: Q* K' ?* h0 Z: Q
d1=0.1;
& \; S; Z$ \3 i7 C1 Nct1=s*(1-theta)*y1+d1/(1+r);% ct1也与s,d1相关;5 h. Q- P1 G: b2 U
$ V9 E" ^# w- ~% e4 l! v, i

$ `' N+ }0 w- B) c! ]0 Rf(1)=wt/ct1-beta*(1+r)*expect1;
* F6 f+ J: F2 J$ r) Hf(2)=wt/ct1*y1*(1-theta)-beta*expect2;
+ k; e' s7 h9 ?( Zend
: E; {% M6 J* n# a7 ]% d0 C
5 `8 I, A8 m# m$ m, J, g  ]
: c" v5 U1 I+ A0 W

该用户从未签到

2#
发表于 2021-1-11 13:08 | 只看该作者
帮你顶一下

该用户从未签到

3#
发表于 2021-1-11 17:43 | 只看该作者
8 Z0 {# n, R( T4 w6 A
你这个写的啥,你foc的函数的变量f1和f2里面x的变量呢,你这个方程写的有很大问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

推荐内容上一条 /1 下一条

EDA365公众号

关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

GMT+8, 2025-11-24 01:29 , Processed in 0.156250 second(s), 26 queries , Gzip On.

深圳市墨知创新科技有限公司

地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

快速回复 返回顶部 返回列表