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

matlab优化求解

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
关于matlab优化求解的问题请教大家;程序报错截图如下,我分析报错的原因是迭代点(s,d1)改变时,(expect1,expect2)未改变,具体问题描述如下:% k6 h( J4 b; `
1.expect1,expect2是s,d1的函数,当fsolve函数按照优化算法找到新的点(s',d1')时,我的问题里时需要expect1,expect2也变化,这样fsolve的目标函数就也变化了;) e8 ~4 `4 {# g7 {
2.根据上述1的描述,这个优化问题是否应该将(expect1,expect2)也纳入优化求解目标中去?这样该如何实现?/ g7 f  M3 l8 @) k$ S0 s7 A
关于这样的编程问题思考了很久也没有编程思路,请求大家给予指导,我在代码中相应部分也对问题进行了表述,如果我的问题没有表述清楚,十分欢迎追问,先谢过大家。
7 I# K9 e* k6 e) U9 Q! h- `clc;
! i: x1 A7 @# J( p+ Z; `clear all;
7 V1 `3 G! ^: l8 s' @# O9 k0 m%%%  赋值外生给定的参数  %%%
; [4 a2 B8 Q+ w" Hwn=0.3;
4 T. x) O( ~* }wt=1-wn;! N; J" s2 K- B* V2 |
r=0.05;
' c2 `' v6 Y0 F% _8 @beta=1/(1+r);
0 ?% J1 C( D5 Y9 U) Repislon=0.05;& n6 s; X; D2 B  m
phi=0.3;
* x; Q- V6 z% K5 My1=1;
3 R6 J5 g- o) H7 d1 ]/ d" b5 u! _: V3 ~yn2=1;
0 n, Q" X( ^! b% L- @y2mean=1;$ |  T0 {( T. B* p6 `' x' @
y3=1;
0 _. @/ J7 f$ Z* K; F. w. `theta=0.9;7 L3 _# J4 h4 m) G: V, B, R

% d' z$ j7 L% F, ?7 V. @1 o% 赋值(y2,s,d1)
2 N4 B; `, e$ \1 J  {y2=0.95:0.01:1.05;# y1 X9 j" k9 T" S# h8 B
s=0.1; %给s,d1的任意初值
, Z6 |9 `" }4 v' j, |, }6 Pd1=0.1;; p2 |  t$ i- P
x0 =[s,d1];% ]4 P5 }4 k3 p
, C5 e: \8 z2 ^( k
%在这个for循环里得到均值expect1,expect2,改变(s,d1),均值expect1,expect2也改变9 Q) x2 E1 W( e" g% [3 s' W
9 H7 }3 r+ T) _5 j
for i=1:1:length(y2);
2 ^8 S) I7 \; ^+ N# Xs=0.01;5 \) Z/ f+ W: D1 j3 \. U  p
d1=0.1;' Q- o% h  [( M5 P5 p" ^7 h+ t

6 @' r& {$ v$ G; ]. q%%% 判断是否紧约束 %%%+ Z- r9 z, R) m: X/ X. S5 A
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));4 a9 ?! U) p2 ~: d* m2 W
check(i)=d1/(1-s);1 N8 B0 A& a+ N% ~. n( U
if check(i)>standard(i): p5 V# ~7 T# }. F+ U8 n
    ct2(i)=((1-s)*y2(i)-d1+phi*(1-s)*y2(i))/(1-phi*wn/wt);
' P$ M/ r* r# J$ Y. ?2 k    d2(i)=phi*(1+r)*(wn/wt*ct2(i)+(1-s)*y2(i));
! @" C# p6 N* y: v+ |& h    ct3(i)=(1-s)*y3-d2(i);
0 g+ L% U4 [4 @1 f& u" @2 @    mu(i)=wt/((1-s)*y2(i)-d1+d2(i)/(1+r))-beta*wt*(1+r)/((1-s)*y3-d2(i));4 E9 l/ T$ Z: B

6 R# X" D7 L7 C& ]6 oelse  v! }" C5 l- u& ?" T6 S
    ct2(i)=((1-s)*y2(i)-d1+(1-s)*y3/(1+r))/(1+beta);, W' P. w' n% Y2 ?) x* y7 e% M
    d2(i)=((1-s)*y3-beta*(1+r)*(1-s)*y2(i)+beta*(1+r)*d1)/(1+beta);
9 S; C$ B6 Y9 T# T7 M3 R    ct3(i)=(1-s)*y3-d2(i);
% W" H# E/ z# D% Y# K5 _$ _2 }9 w8 Z7 G! c
    mu(i)=0;
" ]  [6 X# o, r) _( j1 Lend
/ q/ @* |, j6 F( W3 n) a8 L, e3 A- me1(i)=wt/ct2(i);%每给定一个y2(i),计算得到一个e1(i),e2(i)
% V% Q) k( `1 T6 Y0 d  x4 me2(i)=wt/ct2(i)*y2(i)+mu(i)*phi*y2(i)+beta*wt/ct3(i)*y3;# v# A, h( |- p/ v4 I& s* S

1 o4 L" N- @/ D; {. w%%%求均值%%%( I& Z7 G! b* l7 B. y
expect1=mean(e1(1,);
" }% g8 G9 l1 Sexpect2=mean(e2(1,);
$ w. E% k0 c  h3 tend3 w6 T0 X. o' g- B" h: ?9 Q

: ]! g- I7 W' H, x( g%我的问题中,expect1,expect2实质上是s,d1的函数
: A/ x$ C. t& D$ |%在用fsolve优化求解的时候,每迭代一个新的(s,d1),都应该运行一次上述for这个循环,得到新的expect1、expect2再进行优化求解,: @# f( S0 y# [4 K# R6 T
%也即(s,d1)变化时,expect1、expect2也要变化,如此fsolve的目标函数也变化* N5 K8 m$ P0 g; w
%这样一个问题没有编程思路,请求大家给予指导,如果我的问题没有表述清楚,十分欢迎追问,谢谢。; C' K6 ~1 H4 z, j$ p

% m' K! P& h$ T[x,fval,exitflag,output,]=fsolve(@(x)foc(x,expect1,expect2),x0);
) f+ Z4 c/ h: X& d& u  A
" r6 o; z8 G4 X& J, m5 Z" lfunction f=foc(x,expect1,expect2)2 p: q: j; u2 I* N; I* x+ m+ b
wn=0.3;
: ^( j* W1 D/ S  b0 ?wt=1-wn;( a0 E$ y: u* }8 l* U+ {+ Y# E
r=0.05;
" Q6 X5 c9 \! t0 z4 L" P( Z7 Q, Ebeta=1/(1+r);
1 o3 ~* W" c' D6 _  depislon=0.05;
9 R8 U* y* Q! h* ?7 [phi=0.3;
! I' P7 K7 k, P$ ~  \y1=1;
5 C. ^. V- v! X% W' M3 Z4 v, F' Yyn2=1;/ Z( O, K- ]9 P9 E" S, g/ J
y2mean=1;
$ E9 Y. i# q. M9 l8 hy3=1;3 S- m. T" i* Y8 q
theta=0.9;
. W7 P8 P* b9 i; p  e* P4 |* E3 Qs=0.01;
3 |) H8 ~2 H- Z! ]0 P% Q+ i: ^- Jd1=0.1;0 ~. k$ r% N! w1 W, z, J' f, r; s
ct1=s*(1-theta)*y1+d1/(1+r);% ct1也与s,d1相关;( t' v( |6 Z$ m0 n9 j) c" w
& I! c. F/ H; s: z4 R
f(1)=wt/ct1-beta*(1+r)*expect1;" \. a. i4 p( v
f(2)=wt/ct1*y1*(1-theta)-beta*expect2;. ?2 y+ Y- C+ Y' Q
end6 }! M1 F9 \% C2 h- h

0 s. ]8 J6 T! t7 T5 V& R& t, ]! P! f  ?

该用户从未签到

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-24 03:54 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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