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

matlab优化求解的问题

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
关于matlab优化求解的问题请教大家;程序报错截图如下,我分析报错的原因是迭代点(s,d1)改变时,(expect1,expect2)未改变,具体问题描述如下:
# T) m6 K9 R( Y$ n$ c! M1.expect1,expect2是s,d1的函数,当fsolve函数按照优化算法找到新的点(s',d1')时,我的问题里时需要expect1,expect2也变化,这样fsolve的目标函数就也变化了;+ n2 ?6 e) `) C
2.根据上述1的描述,这个优化问题是否应该将(expect1,expect2)也纳入优化求解目标中去?这样该如何实现?, Y* p) T' }+ I
clc;
/ {' E1 D1 [# t% K* p: s& Tclear all;6 \) H: ~* z4 C1 x3 X3 A; X9 h
%%%  赋值外生给定的参数  %%%8 {& l8 z+ |' [6 H
wn=0.3;/ v& U; n8 k. |- ?4 M
wt=1-wn;
2 `4 D8 g* q( I7 P8 n/ sr=0.05;3 Z& M" {) w8 s1 c! d: ?& x
beta=1/(1+r);5 i% O  k& v+ r9 ^' B) e) l! H4 `
epislon=0.05;; A, w  r& l) W* {# v
phi=0.3;, j; c) V0 V$ N
y1=1;
7 @  o. J  g  _" K7 gyn2=1;
. ^0 v; ~$ Z0 m: r4 Z" |y2mean=1;
2 T4 d3 d* T6 e- {% Q. _y3=1;
$ t- I- d- U2 h  T, g, U5 m# ?theta=0.9;
. C$ m, i) S+ S! G6 S/ Z% d6 P5 J; i$ X7 b& p
+ c- e2 Z& _3 H8 W/ N" r
% 赋值(y2,s,d1)
% y6 p* E0 S+ S1 D. J/ Xy2=0.95:0.01:1.05;
( b$ Q3 x: c7 Fs=0.1; %给s,d1的任意初值
& W0 `( I7 E9 x* r5 m9 p3 M3 wd1=0.1;
0 S# |6 Z' c; M2 z7 yx0 =[s,d1];7 v0 Z" A9 V9 R! T- u
5 f' W" T( b9 A! Q

2 r- ^9 Y  @/ L, P( ]* Y. M- W) k%在这个for循环里得到均值expect1,expect2,改变(s,d1),均值expect1,expect2也改变: \; D1 D9 ?% _3 _5 }1 c
. ]4 a* e( L4 ]0 u& g" P

3 q! R7 m( U7 H  a' Mfor i=1:1:length(y2);% f. o3 |4 t8 ~0 u( u# e- _! t
s=0.01;' V  P+ w' C! G% F, q% m
d1=0.1;0 b% F8 g' n/ [4 g0 Z& T# L

2 {1 J7 E2 [4 @8 P& L

/ N# l* L% a- M) W9 ]0 }%%% 判断是否紧约束 %%%, l- @% E) J5 z6 x9 H
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));) {8 k) v0 V' P: X6 ?
check(i)=d1/(1-s);
9 o( J* }" P3 ~7 x3 sif check(i)>standard(i)' ?+ T1 w' [7 E  H& C
    ct2(i)=((1-s)*y2(i)-d1+phi*(1-s)*y2(i))/(1-phi*wn/wt);
, v% ]* B$ N, H* S- F( z    d2(i)=phi*(1+r)*(wn/wt*ct2(i)+(1-s)*y2(i));
' {' i  {1 h8 x    ct3(i)=(1-s)*y3-d2(i);
' @% ]) E4 h; z  u& ?    mu(i)=wt/((1-s)*y2(i)-d1+d2(i)/(1+r))-beta*wt*(1+r)/((1-s)*y3-d2(i));
) X" V, _( a7 h- O   
3 ^$ _( [! M6 k7 Velse
1 H+ |, p3 c* L# z; c' I5 ~    ct2(i)=((1-s)*y2(i)-d1+(1-s)*y3/(1+r))/(1+beta);" Z% L0 M. {: R& X! b
    d2(i)=((1-s)*y3-beta*(1+r)*(1-s)*y2(i)+beta*(1+r)*d1)/(1+beta);' W" p# y$ ^" N  C7 H, W# O9 _+ P$ M
    ct3(i)=(1-s)*y3-d2(i);' N8 N( v% K/ Q1 s) f
8 e& Y" W; e3 H: E" z" a: W
; }7 M, B0 w& ~
    mu(i)=0;0 x# H$ t* P2 ~: {
end0 q2 T0 v  ?- v8 j" S
e1(i)=wt/ct2(i);%每给定一个y2(i),计算得到一个e1(i),e2(i)
% R4 b: k4 t2 a. re2(i)=wt/ct2(i)*y2(i)+mu(i)*phi*y2(i)+beta*wt/ct3(i)*y3;0 v! b# v0 I5 O* \& H7 b+ b( Y7 L+ p

- ^5 E, M) W, I( N/ \: y

4 A* K" |! y0 `* G%%%求均值%%%0 |5 |" M' X+ H/ }( M( N
expect1=mean(e1(1,:)); . \8 K+ U, [8 F6 A- l
expect2=mean(e2(1,:));" m; y* b- {/ I7 W) i# }
end' N  \; d7 R5 s# h5 U) ]- B; u4 T

2 R# ^, M1 K* a5 ?: t" C% i1 `

* w+ s: D/ Q& G% I5 Y; H%我的问题中,expect1,expect2实质上是s,d1的函数0 Q+ Q9 }9 B; d% M4 @3 ?
%在用fsolve优化求解的时候,每迭代一个新的(s,d1),都应该运行一次上述for这个循环,得到新的expect1、expect2再进行优化求解,7 w0 q1 C" @' R. h9 v/ o* G
%也即(s,d1)变化时,expect1、expect2也要变化,如此fsolve的目标函数也变化# q* H$ i1 [- w% e5 N) M1 d
%这样一个问题没有编程思路,请求大家给予指导,如果我的问题没有表述清楚,十分欢迎追问,谢谢。
' ?- x! ]4 v7 F) q/ p. ^8 `: U1 m  Q2 ?  G
$ B* Q& a7 V/ U4 m: P) }) |+ Q
[x,fval,exitflag,output,]=fsolve(@(x)foc(x,expect1,expect2),x0);
& P8 X, y2 T) z! p4 g/ c$ C* \9 P" {: ?, m& D& B

% y' S4 m/ s, h) Ifunction f=foc(x,expect1,expect2)
$ ~1 X) N8 k" ]' qwn=0.3;
% v) J8 i4 _# E+ @& x2 X2 S* |6 G. fwt=1-wn;1 D+ B1 x0 C2 \4 C
r=0.05;
0 T0 @; d$ i, @4 v& h7 Ybeta=1/(1+r);
) _  g4 F% [% b+ ~; g/ @epislon=0.05;
. V8 W" J8 X6 ~- j( H9 Uphi=0.3;& V8 k0 B6 ]( t
y1=1;2 U8 E& `0 C) T- P; f
yn2=1;
" t3 U" r, Z) T1 ^5 \4 my2mean=1;
2 U. S" b# c7 J0 e+ Q  k% Qy3=1;# m' N# R+ a! h7 \+ F; e
theta=0.9;9 Z. Z4 Q: ?# _$ Z" Q7 E
s=0.01;( s* ?, z& p+ z. `# Q
d1=0.1;
4 u3 n) N8 R5 cct1=s*(1-theta)*y1+d1/(1+r);% ct1也与s,d1相关;
  {+ d0 Q! d; A/ j" |# G; a# k# ^
9 D# [0 e; ?$ s0 r/ _# }
f(1)=wt/ct1-beta*(1+r)*expect1;/ i+ N! a5 @0 A1 e, }
f(2)=wt/ct1*y1*(1-theta)-beta*expect2;1 w( L9 V3 y9 z" u2 x: d( R6 {/ ^
end
5 I+ S3 |: X. U0 ?  x6 [ ' f/ c: e# t4 S9 t/ c. ~; @
# B% Z9 B$ C8 p- S6 T

该用户从未签到

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

该用户从未签到

3#
发表于 2021-1-11 17:43 | 只看该作者
$ [7 U* V2 |3 V
你这个写的啥,你foc的函数的变量f1和f2里面x的变量呢,你这个方程写的有很大问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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