EDA365电子论坛网
标题:
matlab优化求解的问题
[打印本页]
作者:
Uifhjvv
时间:
2021-1-11 11:04
标题:
matlab优化求解的问题
关于matlab优化求解的问题请教大家;程序报错截图如下,我分析报错的原因是迭代点(s,d1)改变时,(expect1,expect2)未改变,具体问题描述如下:
6 w& ]: |+ P+ |' q
1.expect1,expect2是s,d1的函数,当fsolve函数按照优化算法找到新的点(s',d1')时,我的问题里时需要expect1,expect2也变化,这样fsolve的目标函数就也变化了;
. N/ i% O- j& O+ C3 o, H5 k b
2.根据上述1的描述,这个优化问题是否应该将(expect1,expect2)也纳入优化求解目标中去?这样该如何实现?
# U6 [, O" O! `! m7 ~
clc;
% |. B5 y$ `$ h7 P ]5 M/ i
clear all;
% Q, y1 Q) N6 `2 ~0 g6 f' @ M
%%% 赋值外生给定的参数 %%%
( X; b- i, r O9 k, A* ^: ]' J9 g
wn=0.3;
( G/ Y' {( _1 _ ]0 J
wt=1-wn;
. _ q0 ?' Q" L U& R- y
r=0.05;
- S+ T& _) l' N. J( y! B' a3 d
beta=1/(1+r);
3 `2 c8 Q0 I9 Q7 Y; v
epislon=0.05;
. i4 Y( x8 o3 r3 q; w( i: L# P: D
phi=0.3;
. V1 D' p0 A* M
y1=1;
1 y2 W# P# {! i( Y# F2 Y
yn2=1;
7 n% [" _, ] Q9 }6 E/ l! y' G
y2mean=1;
, p: h* }$ ^4 l& o
y3=1;
& g n7 W( E* L- W- m$ y. U. l8 E
theta=0.9;
2 p6 T9 F( }$ F! G
1 e- M" ~8 S, F# q+ ~
0 R9 B, |' a' P$ p, ^5 O
% 赋值(y2,s,d1)
& Y. O% x1 u) D) G) X2 Q) a4 I
y2=0.95:0.01:1.05;
: { T/ I% W6 l/ M( S* `0 w+ c7 K
s=0.1; %给s,d1的任意初值
3 F5 w, V4 h' w6 ?3 X; e% D3 Q
d1=0.1;
+ t/ d/ Z4 a' _0 v
x0 =[s,d1];
1 {7 T$ _) C8 s! ?: b; H
* ~& O4 w9 [2 M; d+ [' d
/ ]. u5 _# a# @7 F9 h9 o* Y) C
%在这个for循环里得到均值expect1,expect2,改变(s,d1),均值expect1,expect2也改变
2 c, ?9 ?! n) d4 K
* w. v' F1 B' l" b% ~$ [
2 a; O2 ]# i! W, D
for i=1:1:length(y2);
6 o+ a8 J2 ^! M! I
s=0.01;
8 A2 @/ h8 t+ K+ `1 r8 h
d1=0.1;
8 i( r, `7 P# ]* _2 H+ d1 V& f
; Y! L% n2 U3 D# D" @& W) V' n( A
4 r" I8 O$ ]) Z% H6 I3 O
%%% 判断是否紧约束 %%%
* g$ f7 k& b# Q9 W
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));
3 |8 u c; _. O5 o1 ~
check(i)=d1/(1-s);
4 c, Z& {$ \0 W$ u9 `% @
if check(i)>standard(i)
( N4 E$ U+ Z3 |* t; C+ t
ct2(i)=((1-s)*y2(i)-d1+phi*(1-s)*y2(i))/(1-phi*wn/wt);
6 X+ a! o/ D5 ]/ F
d2(i)=phi*(1+r)*(wn/wt*ct2(i)+(1-s)*y2(i));
; _( k) V! ?; ?1 }9 s( Q# h
ct3(i)=(1-s)*y3-d2(i);
& [% ]+ A Z- S* C/ A4 I
mu(i)=wt/((1-s)*y2(i)-d1+d2(i)/(1+r))-beta*wt*(1+r)/((1-s)*y3-d2(i));
/ r2 i' F$ T! A- }8 C
6 |- T( B5 j8 k2 Y5 Y# q
else
0 v4 m+ X2 M) K% e/ n, f- ]4 U
ct2(i)=((1-s)*y2(i)-d1+(1-s)*y3/(1+r))/(1+beta);
7 @: v- T8 s8 n0 j- S5 M
d2(i)=((1-s)*y3-beta*(1+r)*(1-s)*y2(i)+beta*(1+r)*d1)/(1+beta);
, e# q+ b" e* ~' b& M* [; T
ct3(i)=(1-s)*y3-d2(i);
. M+ h' g! c$ |* k
- j J- W- C* J: Q3 Z/ ?6 x# X! ^
' E3 n2 S5 w- L- H) A
mu(i)=0;
! K. O3 w7 }+ C; @' `5 d, N# N
end
. I% e g( {9 f8 i: H# p' n8 H! r/ H3 f
e1(i)=wt/ct2(i);%每给定一个y2(i),计算得到一个e1(i),e2(i)
0 x/ d8 q4 A5 b% M5 Z2 `
e2(i)=wt/ct2(i)*y2(i)+mu(i)*phi*y2(i)+beta*wt/ct3(i)*y3;
+ L& x! m; f/ d+ q1 `7 N
0 a% K+ N M. v
! \) G8 y! O: | d3 g
%%%求均值%%%
: m" T. _$ U0 j. P% T) z
expect1=mean(e1(1,:));
- n, T1 {0 K2 c6 x8 A5 B! S( c
expect2=mean(e2(1,:));
3 O% g# Y+ ]" }: n( q" Q
end
) O; g$ W8 F( ?! t6 P
% d! I$ h" `7 t* Z2 v" c# n8 B2 b
* I2 k- G8 b; a T5 e: Z( Z
%我的问题中,expect1,expect2实质上是s,d1的函数
e( K p; b" I! e9 m. W& R
%在用fsolve优化求解的时候,每迭代一个新的(s,d1),都应该运行一次上述for这个循环,得到新的expect1、expect2再进行优化求解,
0 G" j+ a& U7 D; k
%也即(s,d1)变化时,expect1、expect2也要变化,如此fsolve的目标函数也变化
' i$ t* D5 D3 [8 u
%这样一个问题没有编程思路,请求大家给予指导,如果我的问题没有表述清楚,十分欢迎追问,谢谢。
; K1 ~3 j% y+ L
( W/ D. P. t, y( C2 i3 M
# |$ b8 ]: x. t+ _
[x,fval,exitflag,output,]=fsolve(@(x)foc(x,expect1,expect2),x0);
+ z4 M9 u- P5 z( |5 P
/ n( L- i5 z5 G7 B5 p" c9 R$ I
, {4 L% Z" L( A6 n) y5 N8 t% }
function f=foc(x,expect1,expect2)
8 D0 \$ C e" G' w6 H! u8 g
wn=0.3;
, ~) _3 a5 r, Y+ ~/ G- W
wt=1-wn;
* U9 q! p" K5 i. D( T) o
r=0.05;
5 D! b" M0 a$ z' X1 Y( X X6 B6 t" _
beta=1/(1+r);
, W6 ?: K4 e" S$ k6 a7 @
epislon=0.05;
; h: U, Z2 n U" x, z) ?
phi=0.3;
0 z/ p: {* H! i* H6 c( w$ A1 |0 r! j
y1=1;
! M; l; L6 l& W" e# r4 ]- I
yn2=1;
) Z2 d$ j3 K* v& J }
y2mean=1;
' ~: Y1 ^/ C6 m6 X+ D0 r N) F
y3=1;
/ h, W" F$ u( j& M4 g/ ^
theta=0.9;
/ C8 N* U; x5 p8 C L+ ]8 b
s=0.01;
4 G* n0 O7 j* V% D1 b9 O
d1=0.1;
4 x& M1 j4 O! r: f- I/ X' s
ct1=s*(1-theta)*y1+d1/(1+r);% ct1也与s,d1相关;
3 g H0 w- ]5 N5 C ?
1 X- E8 ^. E* w: Y
2 c9 a' |: c1 a% k" f/ B' L
f(1)=wt/ct1-beta*(1+r)*expect1;
5 M0 `* c6 B: B1 g# [( d; G( T f
f(2)=wt/ct1*y1*(1-theta)-beta*expect2;
j3 F* A$ ^/ k4 Y9 t8 m
end
4 y: r5 e* j: b7 K
1.png
(41.42 KB, 下载次数: 10)
下载附件
保存到相册
2021-1-11 11:04 上传
2.png
(41.42 KB, 下载次数: 10)
下载附件
保存到相册
2021-1-11 11:04 上传
- q3 k x/ _+ ]9 U0 z2 _" Y
7 m7 P, J1 ]& B7 O
作者:
pTDbn25
时间:
2021-1-11 13:08
帮你顶一下
作者:
zzz.dan
时间:
2021-1-11 17:43
; d- T' v8 b5 b0 Q
你这个写的啥,你foc的函数的变量f1和f2里面x的变量呢,你这个方程写的有很大问题
作者:
nkkopd
时间:
2021-1-12 13:53
欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/)
Powered by Discuz! X3.2