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

matlab优化求解

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
关于matlab优化求解的问题请教大家;程序报错截图如下,我分析报错的原因是迭代点(s,d1)改变时,(expect1,expect2)未改变,具体问题描述如下:
( S& F  f- I  x1.expect1,expect2是s,d1的函数,当fsolve函数按照优化算法找到新的点(s',d1')时,我的问题里时需要expect1,expect2也变化,这样fsolve的目标函数就也变化了;5 f) w! j! B! n% A7 L
2.根据上述1的描述,这个优化问题是否应该将(expect1,expect2)也纳入优化求解目标中去?这样该如何实现?
1 \" O- b7 S3 Y/ {) M1 ~关于这样的编程问题思考了很久也没有编程思路,请求大家给予指导,我在代码中相应部分也对问题进行了表述,如果我的问题没有表述清楚,十分欢迎追问,先谢过大家。
6 V, z* e. `! h' c! @clc;5 y/ f% @% q6 \( j  H% K
clear all;' @$ t9 u/ V! [6 I
%%%  赋值外生给定的参数  %%%
7 b: ]% s/ |8 c! E2 ~  @wn=0.3;; a% b: P% |) |/ [  ?0 T2 P
wt=1-wn;
5 Q. o: q* W) P" ^/ K! U! Ir=0.05;! c" C* n7 Z, F& `6 S. h9 S
beta=1/(1+r);$ M0 }! E7 U1 W0 F
epislon=0.05;* O: H6 ]" l0 L( O) x
phi=0.3;
; }; Z; {. r2 L! D" Ey1=1;3 t; ]" i" S* m  ]! w$ U% l/ P
yn2=1;
6 F1 `. F) s8 X% _! \" Ly2mean=1;
' r& j" Z& f$ V4 H& T+ Uy3=1;
/ O$ _" {, J! l. R/ V. r. Stheta=0.9;
/ p9 b5 q' z9 K0 k3 y8 t4 i; ?7 B0 ?( u7 d( [9 a9 X
% 赋值(y2,s,d1) # D* [$ t- [' K9 U5 Q' x
y2=0.95:0.01:1.05;% I) z3 S/ x' x2 `2 F* X# E
s=0.1; %给s,d1的任意初值' J2 q( c/ \  f/ h1 j3 o; {+ H4 E
d1=0.1;
/ ]1 J2 R8 X+ z9 S; j3 O8 c( ox0 =[s,d1];
! B- l1 B/ j6 B2 z7 j- f/ M4 H$ s2 n, {. |8 t: L" \
%在这个for循环里得到均值expect1,expect2,改变(s,d1),均值expect1,expect2也改变! S+ J0 b4 \7 u# Q! H# W
% Z" u, j* q" H; E0 l
for i=1:1:length(y2);) P) l0 w4 o$ g& T
s=0.01;4 D7 P3 [- R. h% G
d1=0.1;
4 M3 d/ g/ a' M6 T$ z
  y1 [. W& d0 \& p. w$ \* o%%% 判断是否紧约束 %%%
  h6 S8 _- m$ {) ~' Q9 }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 g. k9 b! B" r2 |
check(i)=d1/(1-s);* M; O% a: E% l$ M6 Q# R, Z
if check(i)>standard(i); k9 i( J* D, Q9 [4 a% F5 j( w
    ct2(i)=((1-s)*y2(i)-d1+phi*(1-s)*y2(i))/(1-phi*wn/wt);6 t( D6 U& V8 z  G9 q
    d2(i)=phi*(1+r)*(wn/wt*ct2(i)+(1-s)*y2(i));; U' u* r8 F% m4 H& {# [5 f# G' G
    ct3(i)=(1-s)*y3-d2(i);
! \& K/ h& y% E' n; d    mu(i)=wt/((1-s)*y2(i)-d1+d2(i)/(1+r))-beta*wt*(1+r)/((1-s)*y3-d2(i));
5 ^) c9 S0 D5 x6 O3 D1 M* l1 X( r$ P
else
% l3 x' e0 }1 J4 J9 A    ct2(i)=((1-s)*y2(i)-d1+(1-s)*y3/(1+r))/(1+beta);$ G, i0 _2 ]; P/ e. M- D3 Y" f
    d2(i)=((1-s)*y3-beta*(1+r)*(1-s)*y2(i)+beta*(1+r)*d1)/(1+beta);
0 R" O7 [% F6 m, U3 l; N0 u    ct3(i)=(1-s)*y3-d2(i);! b& o. W$ o8 K* n% y9 `. W
; @. P8 @! K& c2 `; s# t+ j' U+ Q, O
    mu(i)=0;
: z5 h, D# E' ^+ F& Tend
# a: q7 N" I. l" W( fe1(i)=wt/ct2(i);%每给定一个y2(i),计算得到一个e1(i),e2(i)% e* W5 Y4 Y7 |- d  Q
e2(i)=wt/ct2(i)*y2(i)+mu(i)*phi*y2(i)+beta*wt/ct3(i)*y3;
8 f& E( c" Q2 V( Y
0 G& M& C. @" k+ U7 r4 X%%%求均值%%%
( W2 @4 H6 D! q# r" J6 u* ?expect1=mean(e1(1,);
2 K3 K! q+ K* @" W# j  }% }expect2=mean(e2(1,);
: ]% y4 ?7 l$ g) H: m' l1 lend- W1 r# E5 f7 F- x: }: N$ Y

& ^' q; @0 F' v+ [%我的问题中,expect1,expect2实质上是s,d1的函数, l' `; n& i2 O5 G" g
%在用fsolve优化求解的时候,每迭代一个新的(s,d1),都应该运行一次上述for这个循环,得到新的expect1、expect2再进行优化求解,
! ^0 ~: t( j$ v; {. [, `6 t  X%也即(s,d1)变化时,expect1、expect2也要变化,如此fsolve的目标函数也变化
% i; ^; l5 O: P& r; Y) Q' b%这样一个问题没有编程思路,请求大家给予指导,如果我的问题没有表述清楚,十分欢迎追问,谢谢。  L9 n6 A8 E6 H0 s6 I8 Z( l
# M" S5 R% l. h3 B" A: ?
[x,fval,exitflag,output,]=fsolve(@(x)foc(x,expect1,expect2),x0);) n7 ~2 P6 {5 s

" y/ m7 |8 q/ m3 U# f* Vfunction f=foc(x,expect1,expect2)% P; f) \" F8 |7 }
wn=0.3;) l) @7 L: O) ?$ U. z0 o
wt=1-wn;
! D, m/ D$ y0 O% n( Jr=0.05;# d' |' d: z5 h/ w6 S$ U! W
beta=1/(1+r);: h, o, Q! U  B/ b- N7 j5 _# h$ E7 `
epislon=0.05;0 `: T3 p% \1 _8 ~+ e8 Y
phi=0.3;
& q2 Y8 @% B8 _; u' G2 {y1=1;! P# {* S, ?6 |, m; V/ i
yn2=1;3 O/ g) _2 u2 p0 P
y2mean=1;
# r- R$ S  t3 ]: i- G/ B2 ky3=1;
0 b$ ^+ G& K" l) y" `. Ctheta=0.9;
5 e8 `8 l( Z% W1 ms=0.01;( G4 Y" b9 C. c/ H" S8 L, O8 t/ E' [
d1=0.1;
* B1 D% v% `0 M; |ct1=s*(1-theta)*y1+d1/(1+r);% ct1也与s,d1相关;
% L$ S& }! f. t" C  W, P2 {1 O8 T3 U, t4 Y
f(1)=wt/ct1-beta*(1+r)*expect1;: {4 W# u) _% d5 j/ E+ }5 c$ X
f(2)=wt/ct1*y1*(1-theta)-beta*expect2;+ y* i5 R& D6 b( g; J/ G
end/ ]. ~/ U5 E4 C2 x9 O& s
* c- o4 J4 d% G$ B
# k' n/ x, r5 f7 v' ^

该用户从未签到

2#
发表于 2021-1-26 13:13 | 只看该作者
你这个写的啥,你foc的函数的变量f1和f2里面x的变量呢,你这个方程写的有很大问题

该用户从未签到

3#
发表于 2021-1-26 13:33 | 只看该作者
来学习一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

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

EDA365公众号

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

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

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

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

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