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

matlab优化求解的问题

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
关于matlab优化求解的问题请教大家;程序报错截图如下,我分析报错的原因是迭代点(s,d1)改变时,(expect1,expect2)未改变,具体问题描述如下:2 u) U- @3 x0 l7 N1 U$ B
1.expect1,expect2是s,d1的函数,当fsolve函数按照优化算法找到新的点(s',d1')时,我的问题里时需要expect1,expect2也变化,这样fsolve的目标函数就也变化了;
; D) F: z; r5 [* m, Q2.根据上述1的描述,这个优化问题是否应该将(expect1,expect2)也纳入优化求解目标中去?这样该如何实现?
, n- ]2 v8 Y) i( f" k' b+ eclc;
& ^$ W1 d0 ]% r! x7 }& |clear all;$ A- l' [' V0 q0 Q7 c, l
%%%  赋值外生给定的参数  %%%  D) o9 T# k+ f" L2 u: Q
wn=0.3;! m1 v# k0 \6 C9 t/ x: k1 d
wt=1-wn;
0 B/ L" k6 @% `5 `* K$ m  R/ l; ?r=0.05;
  p; t8 V3 N7 ?% K1 h$ Pbeta=1/(1+r);* Y8 v$ g0 ]! T! [
epislon=0.05;7 _6 G: Q; B' s
phi=0.3;6 t: x6 z& q" M! V% K, Q" z
y1=1;4 L, r4 \0 W, J' d! ^9 o
yn2=1;
  E; Q# Q9 K) v- P$ h7 G; wy2mean=1;6 [) `) D/ a2 b. G5 y+ h
y3=1;
" V) h# B" L3 l6 C: Dtheta=0.9;
4 |' a! t& l% e2 a4 y) \) f; C" c. P
1 I2 E9 M$ v3 T. r5 T! t& y
% 赋值(y2,s,d1) 0 w4 E; W; O% j- P; ]- d- S) L7 O
y2=0.95:0.01:1.05;
/ [( o$ ~" D$ M8 c% j4 is=0.1; %给s,d1的任意初值
$ n! }) _4 U! L7 G9 J9 \7 _3 H7 ?( O- j  ld1=0.1;
7 a7 }8 c& U% Y" [, |% rx0 =[s,d1];8 H0 u3 `; Q; H0 E8 l9 }6 o/ X

% f  x% P+ P3 i6 b* }$ ~
2 t. P+ W- l: o5 M. }9 c
%在这个for循环里得到均值expect1,expect2,改变(s,d1),均值expect1,expect2也改变
1 ]: q" [( V6 s9 V9 b% X& r, `. M, i: D& u

. j$ y+ `3 A5 C3 ~# S( X. g* ifor i=1:1:length(y2);' o' A1 T  X& n5 U1 {
s=0.01;
7 j- A/ h' @% {6 a& Q5 a4 {- ]# ed1=0.1;5 ], D9 U+ t) ]5 W% x
1 C$ ^+ p6 d( [4 j2 k  Z

! F& ]! m$ Q0 C" f* L%%% 判断是否紧约束 %%%9 Y" l$ i3 N/ c5 n5 x9 m
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));) h2 }+ k2 \$ n
check(i)=d1/(1-s);/ m8 W, d+ b# o! S+ U! Z2 ^
if check(i)>standard(i)  o0 [5 ?: _% \
    ct2(i)=((1-s)*y2(i)-d1+phi*(1-s)*y2(i))/(1-phi*wn/wt);2 G6 ?! P% Y& m8 h, K5 Y, h- z- x$ T+ l
    d2(i)=phi*(1+r)*(wn/wt*ct2(i)+(1-s)*y2(i));' [' S7 m: H# X
    ct3(i)=(1-s)*y3-d2(i);- @, n! C- f  j
    mu(i)=wt/((1-s)*y2(i)-d1+d2(i)/(1+r))-beta*wt*(1+r)/((1-s)*y3-d2(i));
# z$ y1 b' }7 w" |  g   
; n- M, d* J: Xelse0 {4 z! }. k( y- `
    ct2(i)=((1-s)*y2(i)-d1+(1-s)*y3/(1+r))/(1+beta);
/ y4 q0 e1 ?" {; S    d2(i)=((1-s)*y3-beta*(1+r)*(1-s)*y2(i)+beta*(1+r)*d1)/(1+beta);
( \$ o5 {$ e& S6 k* t3 H' ]8 |- L. Y    ct3(i)=(1-s)*y3-d2(i);0 k' U! u3 ?+ d; ~. c4 M

1 g, M5 i* z, C
% u0 v, ^6 M8 L" H4 ]# _
    mu(i)=0;
; L( |" u0 n5 o7 nend
, W9 ?0 l# p% f# o2 \e1(i)=wt/ct2(i);%每给定一个y2(i),计算得到一个e1(i),e2(i)6 k& Y  x& [. p! H" q! h
e2(i)=wt/ct2(i)*y2(i)+mu(i)*phi*y2(i)+beta*wt/ct3(i)*y3;
# t% j4 a# ~  j* V, P7 ^- Y6 i- Z# d- w; s0 X
) O# {9 e! m/ V8 t9 ?/ k* {3 R
%%%求均值%%%
3 H* ]% H% }  nexpect1=mean(e1(1,:)); ( M3 ]  U% P8 ]. Z, f
expect2=mean(e2(1,:));
* ?* {2 L* P2 ~end
$ P  H7 x. ?! u" X; w/ `; D
8 |2 x7 D: A/ Z1 m" m
1 n% H9 ?# ^  P2 x5 S
%我的问题中,expect1,expect2实质上是s,d1的函数* I! I- a# G+ E% R; {. d: G, e
%在用fsolve优化求解的时候,每迭代一个新的(s,d1),都应该运行一次上述for这个循环,得到新的expect1、expect2再进行优化求解,$ g7 _  A, v+ `9 n! Y
%也即(s,d1)变化时,expect1、expect2也要变化,如此fsolve的目标函数也变化
+ S7 j/ Y4 Q6 j# J: P& E1 r$ R%这样一个问题没有编程思路,请求大家给予指导,如果我的问题没有表述清楚,十分欢迎追问,谢谢。
7 R5 Z) F1 P- L' u* N
$ ]$ X# A8 }8 G$ P8 _, d! ~

" ]& c% L# @6 e7 x; [% b[x,fval,exitflag,output,]=fsolve(@(x)foc(x,expect1,expect2),x0);5 K: T* S4 o; ~  Z$ [/ F
' H3 Z$ H  j. `7 s& Z( i  a
6 {, ?( F! @8 v3 \) g5 `' z
function f=foc(x,expect1,expect2), K1 Q6 o+ ?1 V; A0 K
wn=0.3;
% G' ]5 c- \6 A8 C8 R# Dwt=1-wn;7 q. J% G2 X5 p; t$ f& ^8 _/ I
r=0.05;5 Q' L. Q) w/ m& o) x/ f
beta=1/(1+r);; _' N) Q2 Y0 z' j+ k
epislon=0.05;6 d: |* X& j4 J# J# z2 h7 \8 g
phi=0.3;3 `; ~+ j# _+ W+ [1 H1 ^
y1=1;& F% U6 R8 O: l3 v
yn2=1;
& X0 m  j4 M) B0 Wy2mean=1;
- e" t; K+ q2 V1 fy3=1;
* ^- z! h) I: m. _( e- u5 V" Vtheta=0.9;
9 a* c* [9 E  H' `! ^) R1 Us=0.01;
- u- P2 S! {( ^- O4 Gd1=0.1;
& g' s6 p0 S5 [. C0 }. bct1=s*(1-theta)*y1+d1/(1+r);% ct1也与s,d1相关;* `1 D. ]$ l' a7 q7 D
! p3 ]- ~- V" {
0 a7 v  A9 u+ H4 o( p# m9 J6 r6 \
f(1)=wt/ct1-beta*(1+r)*expect1;2 |. g& q8 c1 u% B3 f: O- w
f(2)=wt/ct1*y1*(1-theta)-beta*expect2;, U0 ^) x; s  R
end
: \. `( H* s( l( [  H
$ J$ o& x  S' A8 c# v9 E

5 K  y0 p; ^, L2 d4 K

该用户从未签到

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

该用户从未签到

3#
发表于 2021-1-11 17:43 | 只看该作者

1 E! S7 D; E/ e- w你这个写的啥,你foc的函数的变量f1和f2里面x的变量呢,你这个方程写的有很大问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-12 09:22 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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