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

matlab优化求解的问题

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
关于matlab优化求解的问题请教大家;程序报错截图如下,我分析报错的原因是迭代点(s,d1)改变时,(expect1,expect2)未改变,具体问题描述如下:
1 R$ j. _  a# u4 u1.expect1,expect2是s,d1的函数,当fsolve函数按照优化算法找到新的点(s',d1')时,我的问题里时需要expect1,expect2也变化,这样fsolve的目标函数就也变化了;
$ z* @8 |+ N" n5 x2.根据上述1的描述,这个优化问题是否应该将(expect1,expect2)也纳入优化求解目标中去?这样该如何实现?! j3 J1 j" |9 W% s
clc;
/ v* Y3 M2 o$ U& Q/ lclear all;* `( N1 y, a) l; k% F3 W+ U
%%%  赋值外生给定的参数  %%%3 D0 f/ R4 d: c
wn=0.3;1 Z) T8 c7 J% s+ A% t7 K- i
wt=1-wn;
3 b. n) K( N; Q" J- I$ ^* H) u! Hr=0.05;
+ ~( V; g% K; s) j+ G' L9 lbeta=1/(1+r);
( D. }4 W& D0 s5 x4 sepislon=0.05;
( Y0 \- O* u" C! E% P  q1 ophi=0.3;9 n- B0 A/ J. m: I7 w) f
y1=1;
: C6 S! r: v# B; \& Zyn2=1;
$ G: M6 K% ~# j" s  [- i! b8 qy2mean=1;
  R' h8 I" B6 k" r7 [y3=1;
1 j* C% K6 a( k3 [3 x) Jtheta=0.9;9 ~- {6 T6 d- d
/ n1 i. _; B7 B, r, i

) t, S5 u4 J6 ^! ^, c% 赋值(y2,s,d1) ( B+ [! K  c# E
y2=0.95:0.01:1.05;
" d9 }; r6 [1 ?9 g  j# bs=0.1; %给s,d1的任意初值# F" U) H8 H) P. z! [7 H* M% F( V8 U: z
d1=0.1;/ q. G9 r9 L% E& g7 g
x0 =[s,d1];' K* I+ h3 d" p: F+ I+ N

4 O! B/ R# v6 D
) i$ p3 J$ B) s9 a
%在这个for循环里得到均值expect1,expect2,改变(s,d1),均值expect1,expect2也改变  x2 ~2 y$ }" _7 U2 w. H
+ D- L3 w9 S' ]2 m- Q4 p5 m) D
) ^! B4 s8 [+ X# j3 @
for i=1:1:length(y2);
# [: I$ _  o  j. Qs=0.01;
! q: u) {% v5 hd1=0.1;
7 Y+ k8 L1 G+ r$ D2 d8 d+ {" U1 Y- J6 K! F& W2 ?
/ Y+ w' [3 g/ u7 O0 a- i# N5 r
%%% 判断是否紧约束 %%%3 n2 M0 W5 [2 a& o& Q, f
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));
7 P8 B: [( j7 T7 ]" fcheck(i)=d1/(1-s);" r, v3 s- o3 [/ W  a0 g' _
if check(i)>standard(i)
5 S' f) t4 S  k" t; v9 q    ct2(i)=((1-s)*y2(i)-d1+phi*(1-s)*y2(i))/(1-phi*wn/wt);
! `' `( d! v9 T( Y, K    d2(i)=phi*(1+r)*(wn/wt*ct2(i)+(1-s)*y2(i));0 o( G5 {* j* d0 j, c* M0 v
    ct3(i)=(1-s)*y3-d2(i);4 J, h* J7 o. p9 M9 Y
    mu(i)=wt/((1-s)*y2(i)-d1+d2(i)/(1+r))-beta*wt*(1+r)/((1-s)*y3-d2(i));' N0 |* J0 f6 u9 J6 v- {) c% S
   
" y6 x" L6 u6 x- _" P. gelse( d8 y  E# j0 W6 [0 q5 H9 T: f/ K& j
    ct2(i)=((1-s)*y2(i)-d1+(1-s)*y3/(1+r))/(1+beta);! i, s; q0 e1 m( V, G
    d2(i)=((1-s)*y3-beta*(1+r)*(1-s)*y2(i)+beta*(1+r)*d1)/(1+beta);
7 k  S7 k) l0 u8 T    ct3(i)=(1-s)*y3-d2(i);
+ E" g( ?/ C" q3 o6 k3 ]' I" A4 v8 u1 Z
& N4 G- J- T3 A! `8 ^- I9 d5 C
    mu(i)=0;
& }1 y* U, H* b/ \" f  ^# R* yend! }" N9 W$ w. k9 F
e1(i)=wt/ct2(i);%每给定一个y2(i),计算得到一个e1(i),e2(i)" Q  }! I' A' g, ]! Z  ?% J5 a
e2(i)=wt/ct2(i)*y2(i)+mu(i)*phi*y2(i)+beta*wt/ct3(i)*y3;) f5 }6 D3 e9 y5 v
" R3 e8 P3 [8 \$ M9 w
3 W1 B1 E. t0 W
%%%求均值%%%5 m. C0 p4 J1 o
expect1=mean(e1(1,:)); & O4 g4 U0 }% `0 x
expect2=mean(e2(1,:));; M! E7 G1 N- |; V- H/ O
end8 j% }# {- s, {# a, @7 v
( X! i. p! C& O. |& |, u
. ~: w1 j2 A0 C+ I' u: \  K  `
%我的问题中,expect1,expect2实质上是s,d1的函数3 `/ ]' S/ @. s; U# p
%在用fsolve优化求解的时候,每迭代一个新的(s,d1),都应该运行一次上述for这个循环,得到新的expect1、expect2再进行优化求解,
8 R8 ?( z" k! `. Q; V%也即(s,d1)变化时,expect1、expect2也要变化,如此fsolve的目标函数也变化: r* i% V! S9 j  s! W# ~
%这样一个问题没有编程思路,请求大家给予指导,如果我的问题没有表述清楚,十分欢迎追问,谢谢。7 P9 v0 F7 d/ s% f: b- a

/ ]* ]5 b4 ?$ }4 E0 Y* t7 p" p

" V/ h9 e3 Z  P' C7 f  V7 r* ?[x,fval,exitflag,output,]=fsolve(@(x)foc(x,expect1,expect2),x0);) e" C: c% i& p
% N" |8 f; ^1 }1 F$ |! S
' ^$ }5 Y; I2 `3 P# {
function f=foc(x,expect1,expect2)6 H$ D/ |8 e6 w6 i7 J/ \8 W4 l
wn=0.3;
; [) }- `# F5 |8 M' P6 J2 Gwt=1-wn;
5 A2 _5 [* v$ M) ~r=0.05;
* q: ~  j. w. p: S0 \- @2 Cbeta=1/(1+r);0 ^+ z9 k  W  V6 o- B9 ~  ~& n
epislon=0.05;
; w2 h$ `6 d* R) h3 s: ophi=0.3;
; L( N$ q7 q0 Uy1=1;
4 G) ?7 r3 E+ F+ D, X4 _yn2=1;
$ V  O/ c) n$ K) e. |# I4 j! @" Ky2mean=1;& J8 ]6 A- V- z7 y
y3=1;
/ ]2 y+ T! l  N$ b2 _theta=0.9;+ `% t4 C; w+ z' N5 b* ^( q
s=0.01;
4 m# v6 `& ~2 R" V9 [d1=0.1;
! L  J8 k; Y; j7 |- u; ?& Gct1=s*(1-theta)*y1+d1/(1+r);% ct1也与s,d1相关;3 n6 ?6 c7 _9 o6 l  Q

6 K6 E; w* ]1 o5 W4 Z  @

5 j0 V6 e- ]/ a' |0 z% {$ Sf(1)=wt/ct1-beta*(1+r)*expect1;6 J- ?. \" Y& m; A- n  U) Q: D
f(2)=wt/ct1*y1*(1-theta)-beta*expect2;
9 _2 A2 C) P/ r5 Aend. o3 v# Y! ~  a1 ?
8 @: G$ D% d6 p8 Y. w( @4 S/ I; [
2 i2 u& J# `! h

该用户从未签到

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

该用户从未签到

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

) Z  y) B+ T/ H/ \2 l1 k你这个写的啥,你foc的函数的变量f1和f2里面x的变量呢,你这个方程写的有很大问题
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

GMT+8, 2025-8-2 11:23 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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