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

matlab优化求解的问题

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
关于matlab优化求解的问题请教大家;程序报错截图如下,我分析报错的原因是迭代点(s,d1)改变时,(expect1,expect2)未改变,具体问题描述如下:
+ ~  I) B; j7 I) F2 |) B1.expect1,expect2是s,d1的函数,当fsolve函数按照优化算法找到新的点(s',d1')时,我的问题里时需要expect1,expect2也变化,这样fsolve的目标函数就也变化了;
  y' [3 I0 l! m( {) `+ k9 k8 R2.根据上述1的描述,这个优化问题是否应该将(expect1,expect2)也纳入优化求解目标中去?这样该如何实现?) ?' n+ n: d9 M+ f
clc;
8 S# _# A4 ?: l/ B$ s# qclear all;
+ |5 n. U0 m# c7 W. f%%%  赋值外生给定的参数  %%%" M, Q/ w/ U5 @; }7 w
wn=0.3;
9 h* ~/ T( F, j9 n, N% \wt=1-wn;
8 m5 {3 W5 Y5 @- ?r=0.05;3 `* i4 S0 B" V9 Y
beta=1/(1+r);# S. I4 N- [; s$ t4 b; [- q
epislon=0.05;
' |' B( l6 ~9 f# ]# aphi=0.3;3 s" o7 f& O' C! [, E1 x
y1=1;
/ n" t+ `4 ]$ _9 s" }yn2=1;
- m* v! z% b$ r9 C; `6 u1 Ly2mean=1;7 |$ P! I% x" Y5 d# R0 y
y3=1;* Y7 k  L# F5 m+ S! p, X
theta=0.9;
7 U& c. m. d; Z0 e& O4 G' Z8 G* x' o3 p6 ]+ F- d' {$ [. |7 p
- }+ M! c( L) y$ ~& ^" P
% 赋值(y2,s,d1)
* k0 X- @$ Q# k. a) iy2=0.95:0.01:1.05;
( {5 w0 ^5 P, ^6 q1 G9 Ys=0.1; %给s,d1的任意初值
+ I: F% E+ b( A5 {. Fd1=0.1;4 m3 f9 `( X# ?, L) s" }, @+ n1 G# ?
x0 =[s,d1];
- K; @& s' o/ O$ W5 t/ O) ?1 U% `
+ j- Z# ~9 o4 V3 W& r

7 l2 }2 C8 ~  N. J- k& {* c2 o  y%在这个for循环里得到均值expect1,expect2,改变(s,d1),均值expect1,expect2也改变" O! V5 X+ _3 w$ ^5 y* K( ?
9 U# ?$ K6 ]' d
! m, f# T/ Z. h4 \$ Y- d6 n
for i=1:1:length(y2);
/ P) q0 \3 \9 n: s, `6 z) C3 f7 Ys=0.01;0 M3 A* S: f1 g" f- _1 x/ I
d1=0.1;$ M; U2 ?" ^, A2 v9 L; n- Z# a/ a

* M, t/ w( L6 K

2 P7 {; v2 ?6 A) ?- g# n%%% 判断是否紧约束 %%%
# L- Z  B# t+ _/ ?$ y: Fstandard(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));$ \/ r& W0 w* _( z: p$ W8 X
check(i)=d1/(1-s);
4 x2 D/ h4 r: w1 m# Hif check(i)>standard(i)/ m6 f0 I3 B2 K/ r" E& [9 I* |
    ct2(i)=((1-s)*y2(i)-d1+phi*(1-s)*y2(i))/(1-phi*wn/wt);, d4 H& C9 E4 `7 U
    d2(i)=phi*(1+r)*(wn/wt*ct2(i)+(1-s)*y2(i));6 m$ g- z6 _4 |) z) c; M, L) |+ d
    ct3(i)=(1-s)*y3-d2(i);
5 w$ p2 x  |! [, }    mu(i)=wt/((1-s)*y2(i)-d1+d2(i)/(1+r))-beta*wt*(1+r)/((1-s)*y3-d2(i));
" V8 O: N' q; }! }7 V   
* C4 \; w& |; |' p$ C  helse/ E3 ?, ]- k( }- p: {
    ct2(i)=((1-s)*y2(i)-d1+(1-s)*y3/(1+r))/(1+beta);! y3 b( l# B4 `+ \
    d2(i)=((1-s)*y3-beta*(1+r)*(1-s)*y2(i)+beta*(1+r)*d1)/(1+beta);2 L0 Y) V; a8 x, S7 r: d# F
    ct3(i)=(1-s)*y3-d2(i);% Y1 I# x2 K8 {/ M
8 g+ i, O& s/ \0 k+ v  I
6 g" y; W6 ?: h- W9 e# |; W
    mu(i)=0;+ y. r* ^/ ^: ~3 B6 b
end( t5 y& E  ?& C) }0 J0 z( b
e1(i)=wt/ct2(i);%每给定一个y2(i),计算得到一个e1(i),e2(i)
5 U- w% \6 O; P! x% de2(i)=wt/ct2(i)*y2(i)+mu(i)*phi*y2(i)+beta*wt/ct3(i)*y3;" o! L; E& n# p! N5 L

* N- j7 o! F8 G8 P, @$ ~" q$ A& ]
% I0 e( i5 k3 h+ ?; k
%%%求均值%%%
- v; T6 D# a2 e+ X; ?expect1=mean(e1(1,:)); % L0 C: @! n& `# z+ F# i
expect2=mean(e2(1,:));/ b- l6 U/ Z. Y6 Y
end  X- v9 x. x' e& d

* T: a2 ^( ?" {( h( E8 c

% O4 [2 i! l: N/ d4 O# @) K%我的问题中,expect1,expect2实质上是s,d1的函数4 g, u; m  Z0 |2 E3 R7 G; m6 K
%在用fsolve优化求解的时候,每迭代一个新的(s,d1),都应该运行一次上述for这个循环,得到新的expect1、expect2再进行优化求解,
% ?; S# v- l1 Y  G, H! H5 b%也即(s,d1)变化时,expect1、expect2也要变化,如此fsolve的目标函数也变化
/ b! y; A: v6 r: [  X) x%这样一个问题没有编程思路,请求大家给予指导,如果我的问题没有表述清楚,十分欢迎追问,谢谢。
. A% Z8 ?4 F% s2 g/ N; G! X6 {4 c) C6 y% t# _/ O
2 j% K1 K( X' c, f  e0 a2 Y
[x,fval,exitflag,output,]=fsolve(@(x)foc(x,expect1,expect2),x0);3 D! s% Y: G2 |, K

# V9 ~& E* m# V
& f- b6 O6 g8 k" B, s6 g
function f=foc(x,expect1,expect2)4 |) E) E) _4 J* u: O2 O# _) P' h
wn=0.3;" U. S; f+ ?$ u. V
wt=1-wn;3 c) ?; ~/ l' K9 i6 C
r=0.05;
$ w1 A' X' O" F; fbeta=1/(1+r);
% v$ z* ~% B- a- `" \epislon=0.05;' ]5 L# p7 p* m6 X
phi=0.3;
1 Q  x4 g4 a/ k, vy1=1;
( w2 m/ ^0 c6 o" Fyn2=1;( _' ^4 c3 j0 ]/ P8 v; \( x& w
y2mean=1;( b9 p9 Q8 e+ n2 E: b9 t
y3=1;4 \$ z7 u( Q8 Z5 k! u  J; q
theta=0.9;
" S# M2 A8 W7 v5 B6 }s=0.01;
' `* W0 _- f5 G* ]! \& _d1=0.1;
. Z3 C7 [/ r4 ~* M* ]3 Jct1=s*(1-theta)*y1+d1/(1+r);% ct1也与s,d1相关;
% @: i% v* S2 z! ~: p
# z3 H: a2 F6 ^0 S( V

8 m; @& ~7 u, I0 Y. A8 Vf(1)=wt/ct1-beta*(1+r)*expect1;! F1 h2 F1 d* T
f(2)=wt/ct1*y1*(1-theta)-beta*expect2;
7 J4 Z5 `9 a. mend
2 B% p$ h& K  D* p; b
5 a2 l5 s4 y4 Y. |* C# a8 L& x
4 X6 i! _7 B2 Y$ N) g2 U, |( |# M

该用户从未签到

3#
发表于 2021-1-11 17:43 | 只看该作者
# T# s0 @4 y9 `( r
你这个写的啥,你foc的函数的变量f1和f2里面x的变量呢,你这个方程写的有很大问题

该用户从未签到

2#
发表于 2021-1-11 13:08 | 只看该作者
帮你顶一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-11-24 02:16 , Processed in 0.156250 second(s), 27 queries , Gzip On.

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

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

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