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

matlab优化求解的问题

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
关于matlab优化求解的问题请教大家;程序报错截图如下,我分析报错的原因是迭代点(s,d1)改变时,(expect1,expect2)未改变,具体问题描述如下:
2 M" h: C; Q) @, Z& ]7 N( C1.expect1,expect2是s,d1的函数,当fsolve函数按照优化算法找到新的点(s',d1')时,我的问题里时需要expect1,expect2也变化,这样fsolve的目标函数就也变化了;
$ f( w! }  U! z6 |! Z2.根据上述1的描述,这个优化问题是否应该将(expect1,expect2)也纳入优化求解目标中去?这样该如何实现?0 S7 p' p4 e8 Q2 u
clc;
5 p2 O- _% l  r/ U' P& [1 c- k5 Jclear all;* J. p! e, ?. ~% G! D3 K, B
%%%  赋值外生给定的参数  %%%
( n2 M% H( L- ^( D/ wwn=0.3;
* P( t/ i  Z  |  [: P  Wwt=1-wn;! p/ M" ^  C7 {; ^
r=0.05;5 c& a0 @% V- A- @5 J* V
beta=1/(1+r);) I" ~6 N2 m, \2 C% W" d
epislon=0.05;
9 v4 s; R. m! J$ x6 `6 W, K! Aphi=0.3;7 \9 Y9 ]9 Q3 P) d, r
y1=1;
1 D! F* Q7 q; u. s: Zyn2=1;$ [  F5 m, h7 J: o. _
y2mean=1;/ R) c0 R. Q: C; a1 \: ^: x
y3=1;- D# w6 J, W5 Z  S8 r, H
theta=0.9;! ^9 A8 {# y9 _" T

9 ]$ e/ E3 R: n+ P+ o# Y

# Z4 W  [$ _& d7 W3 x% 赋值(y2,s,d1)   E, m- d" H& I' r( e, w- @* @
y2=0.95:0.01:1.05;& n" n& L8 G( D; o% p2 ^, u* \
s=0.1; %给s,d1的任意初值8 l/ @. n2 I7 R) H- P) u" ?1 V, w
d1=0.1;  q! q3 [2 m5 \9 R1 {- L
x0 =[s,d1];
( G0 Z2 c( L# W
4 _+ y! b7 [7 U% `' o
4 [& d9 O  ~+ P; s
%在这个for循环里得到均值expect1,expect2,改变(s,d1),均值expect1,expect2也改变
/ @2 _$ {( U9 h6 s1 }( [
' o, y4 P, `! A; U  g; G
, S9 {2 z5 X) j) j6 p0 g  j; z
for i=1:1:length(y2);, {2 s7 J* n2 {- `
s=0.01;. O7 o1 ]5 ~% B$ h8 M& [7 l' S6 i0 l" t
d1=0.1;
8 ~8 V$ p- ?6 c3 [& A# ?6 q1 ~5 k, U- S' Z. ~

* L4 @) V5 Y9 `; C: m* p%%% 判断是否紧约束 %%%- ~, ]9 x/ j( 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));0 N9 i8 J7 ]5 c4 ]: W
check(i)=d1/(1-s);" Q% s, }: \3 j7 t* R
if check(i)>standard(i)
1 {8 I+ W5 d9 }. L2 ?    ct2(i)=((1-s)*y2(i)-d1+phi*(1-s)*y2(i))/(1-phi*wn/wt);& \9 e3 V9 b- |; E6 \
    d2(i)=phi*(1+r)*(wn/wt*ct2(i)+(1-s)*y2(i));
$ {! a: Q/ H4 e) [4 B& N) d( G    ct3(i)=(1-s)*y3-d2(i);- e# R9 o/ T0 [7 K+ |
    mu(i)=wt/((1-s)*y2(i)-d1+d2(i)/(1+r))-beta*wt*(1+r)/((1-s)*y3-d2(i));6 H  I5 X: B# v6 H/ N  W
   
3 T5 h" Z7 P* [/ P$ d" o% i7 @else* I- F8 K, J% f/ W5 L
    ct2(i)=((1-s)*y2(i)-d1+(1-s)*y3/(1+r))/(1+beta);; p7 G* ]3 j0 {& }1 Q- n8 Y
    d2(i)=((1-s)*y3-beta*(1+r)*(1-s)*y2(i)+beta*(1+r)*d1)/(1+beta);
9 i9 A* h# B; t3 x    ct3(i)=(1-s)*y3-d2(i);) }% p5 h+ r+ j( X+ O
$ r3 u+ x4 E* g# [- F

5 }3 [5 }* F* c; r: I    mu(i)=0;
/ o/ g* F1 G7 S0 I) rend
! J. T& ^/ s0 U3 t3 D% We1(i)=wt/ct2(i);%每给定一个y2(i),计算得到一个e1(i),e2(i)
+ f* o$ T: @/ F7 Se2(i)=wt/ct2(i)*y2(i)+mu(i)*phi*y2(i)+beta*wt/ct3(i)*y3;
( [8 m" M) j3 N
. M; X9 |1 N6 ?" t. \. `

+ ?% L+ N% s' }3 t. y2 w9 H  [%%%求均值%%%. d* V. A" n4 A. u
expect1=mean(e1(1,:));
/ T# L2 C1 t% Z! a  Pexpect2=mean(e2(1,:));
! m& S8 d9 c. L3 ?2 K: b$ Zend
) O% }& M" p* N3 `4 y  i$ `- P* B- h' R  C* G
  {/ a$ \! |+ ^7 F. C
%我的问题中,expect1,expect2实质上是s,d1的函数! v9 Q9 M' Y% y  `6 o+ x7 U( `' Q, h$ [
%在用fsolve优化求解的时候,每迭代一个新的(s,d1),都应该运行一次上述for这个循环,得到新的expect1、expect2再进行优化求解,
8 Z5 G1 s( r. ]& q  X, Y! t%也即(s,d1)变化时,expect1、expect2也要变化,如此fsolve的目标函数也变化
# J. u% W# s' Y%这样一个问题没有编程思路,请求大家给予指导,如果我的问题没有表述清楚,十分欢迎追问,谢谢。
8 g' J! T8 L- s! x; d
' Y+ {& m! Q" t8 T) N, v8 ^

6 H( Y6 Q( ^  L4 |9 S[x,fval,exitflag,output,]=fsolve(@(x)foc(x,expect1,expect2),x0);
2 v3 J" N; X4 Y% Q2 W+ X6 m! Z
# I2 a* y! M$ y
( U) v2 a! r/ M5 I8 k
function f=foc(x,expect1,expect2)
% v0 P& r  s6 w6 Rwn=0.3;6 F4 ]" m8 z$ P7 @* t0 E
wt=1-wn;
2 e" w+ p% C& V$ ~9 }9 i$ hr=0.05;
6 P% m8 G) [" k) E: t3 b4 ^7 qbeta=1/(1+r);, H/ s, ]) g* S) E% K  e( P: t
epislon=0.05;
2 A/ G! Q& T" {! z& I5 Nphi=0.3;
1 I/ ~+ {, c, m0 F% C  a! Ay1=1;" d% H0 U8 i* Z2 k; A
yn2=1;
) h) C+ Q+ r5 f! xy2mean=1;
1 I3 C# j+ e5 T+ `! Z, t7 o1 fy3=1;! K0 z( ?' P$ w2 O
theta=0.9;* F* z2 I- R0 |8 O; r
s=0.01;
; Y, {6 D8 O! E# e4 n7 T2 Q: k8 _( Zd1=0.1;
$ Y) t, f; y4 p8 Q1 ^. g0 j9 Wct1=s*(1-theta)*y1+d1/(1+r);% ct1也与s,d1相关;  L1 q- y8 o* c& m( @& L

/ q- L& k, `' ~3 x

5 E' B0 f% V+ T# c: a0 gf(1)=wt/ct1-beta*(1+r)*expect1;
: u; L5 }# D5 I( J" `' J+ T% Uf(2)=wt/ct1*y1*(1-theta)-beta*expect2;. C' e  r7 ~- `  |' f- f/ e
end, K. c7 B& W, b9 V8 C

  H  D0 v* ?5 G) u; Q9 j/ |! v8 `
3 B6 b- D% d4 J' k

该用户从未签到

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

该用户从未签到

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

0 E7 f: N( E+ p. [你这个写的啥,你foc的函数的变量f1和f2里面x的变量呢,你这个方程写的有很大问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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