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

matlab优化求解

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
关于matlab优化求解的问题请教大家;程序报错截图如下,我分析报错的原因是迭代点(s,d1)改变时,(expect1,expect2)未改变,具体问题描述如下:
. k" @5 C4 J) K  U1.expect1,expect2是s,d1的函数,当fsolve函数按照优化算法找到新的点(s',d1')时,我的问题里时需要expect1,expect2也变化,这样fsolve的目标函数就也变化了;
5 m1 `; j: n) R: J2.根据上述1的描述,这个优化问题是否应该将(expect1,expect2)也纳入优化求解目标中去?这样该如何实现?
5 v4 J* g: L/ I: Q! V关于这样的编程问题思考了很久也没有编程思路,请求大家给予指导,我在代码中相应部分也对问题进行了表述,如果我的问题没有表述清楚,十分欢迎追问,先谢过大家。) L" y7 q$ f; m! f! Y
clc;' d, U7 Y8 N9 N! M2 H6 o2 N" ]
clear all;
$ m( y7 D& J0 i. R$ P$ u" e%%%  赋值外生给定的参数  %%%1 S0 a( C: n9 P8 F  ]! B& y
wn=0.3;
6 P* f' @2 x; R) q1 j% Y$ {wt=1-wn;0 ^8 z$ A6 S* f+ T! o# @! Q5 T
r=0.05;& z0 w8 j5 l/ e7 @" E( M- U' k$ T
beta=1/(1+r);( r6 S, D7 n0 E' M
epislon=0.05;
3 H0 C, y# Q- O/ Q) X0 B/ l3 ephi=0.3;
  m% R# N% a) R2 k7 g3 g8 a- [8 iy1=1;) G. r% p' y+ y. `
yn2=1;( ]3 g8 y! A4 ]) b5 R9 j
y2mean=1;
% q2 o% k) @8 O7 s, R1 d* ey3=1;; {9 c* {$ R# Z& l2 l( e, k
theta=0.9;% p2 U8 N8 u+ r, o4 `: b

+ Y; w) X' _1 D8 D% g3 A0 p% 赋值(y2,s,d1)
9 o6 d" d) r. f& M) v( `y2=0.95:0.01:1.05;; [# D/ m' r5 _1 [4 D
s=0.1; %给s,d1的任意初值. b3 i5 Y" u, X3 L+ C
d1=0.1;
. E. i( l/ [; y: ix0 =[s,d1];* w8 r3 s; R$ @  B8 a3 }" L7 Z, p- l
5 G: ?/ l! r; `7 r
%在这个for循环里得到均值expect1,expect2,改变(s,d1),均值expect1,expect2也改变
4 e* C  {; g9 u2 z5 H8 N+ c3 {2 O- o5 Y
for i=1:1:length(y2);
% S! }: _, D, n+ q$ F' Z( v5 js=0.01;
2 G$ A4 W- ]6 b, P5 Id1=0.1;
) ^/ B7 b8 E7 K0 X& l2 @: V
3 @6 y4 P) F6 O%%% 判断是否紧约束 %%%
3 B; _* w; H% _* \* h, jstandard(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));8 ]6 u4 t  N4 _8 g5 E
check(i)=d1/(1-s);
& w8 E7 h1 A0 H' r& `, Yif check(i)>standard(i)& ~- P" ?& F. R0 e2 ~, q2 X
    ct2(i)=((1-s)*y2(i)-d1+phi*(1-s)*y2(i))/(1-phi*wn/wt);3 ~# D9 L3 s( v3 Z$ E3 l0 E9 K1 @- ?
    d2(i)=phi*(1+r)*(wn/wt*ct2(i)+(1-s)*y2(i));/ m, v( `, y) ?# @3 ~4 I5 W* O
    ct3(i)=(1-s)*y3-d2(i);0 L3 {) w/ b9 c5 ~( h
    mu(i)=wt/((1-s)*y2(i)-d1+d2(i)/(1+r))-beta*wt*(1+r)/((1-s)*y3-d2(i));
0 q5 @6 E9 u% |* V+ K  H) q+ ~' |2 n7 @+ t% f# ^# {1 c
else9 r1 a* \1 Z% i. k7 ~$ R
    ct2(i)=((1-s)*y2(i)-d1+(1-s)*y3/(1+r))/(1+beta);
1 U3 l+ T( y9 i2 y) u    d2(i)=((1-s)*y3-beta*(1+r)*(1-s)*y2(i)+beta*(1+r)*d1)/(1+beta);
; r" ^- h4 x5 [9 K) h- b- Z6 V/ ~    ct3(i)=(1-s)*y3-d2(i);3 L. M" C8 [. Q+ e7 V! ~

; Y# w# ^/ D) [) N% t    mu(i)=0;
1 }. s! x: c/ ~* `* \7 }% ~end
% M6 P6 `' k: o3 Pe1(i)=wt/ct2(i);%每给定一个y2(i),计算得到一个e1(i),e2(i), G/ I5 [  v  p; u9 w
e2(i)=wt/ct2(i)*y2(i)+mu(i)*phi*y2(i)+beta*wt/ct3(i)*y3;5 J, \; v# V  a9 h! \" [

* v; R. V" Z- g' W7 }  L+ {: T%%%求均值%%%
* k/ E3 h6 _1 s. {7 ?expect1=mean(e1(1,); " m( t, f. ~+ Q4 A2 r* D% K
expect2=mean(e2(1,);
- k% g. T3 ^$ G9 D; f1 eend% n% E* S8 G+ E! r4 Q
' y* t( d: p) Y6 y* Q( c/ V/ w" x
%我的问题中,expect1,expect2实质上是s,d1的函数
; k) W* e) Y8 e& }%在用fsolve优化求解的时候,每迭代一个新的(s,d1),都应该运行一次上述for这个循环,得到新的expect1、expect2再进行优化求解,
+ A- e, o: j% a% [' s5 ?: W%也即(s,d1)变化时,expect1、expect2也要变化,如此fsolve的目标函数也变化
. W0 E6 ?) x' T& J& _5 _%这样一个问题没有编程思路,请求大家给予指导,如果我的问题没有表述清楚,十分欢迎追问,谢谢。
( f: C6 |% W( _0 G% f3 ?4 y3 {. t; U: ~5 e# k2 t1 Y
[x,fval,exitflag,output,]=fsolve(@(x)foc(x,expect1,expect2),x0);7 Y, M0 @- e" Z, E1 d
, I1 u$ f2 m; G3 B
function f=foc(x,expect1,expect2)# F$ I5 y& Y4 h  p1 Y3 H; V8 T# C4 K
wn=0.3;
7 z# r: |- ?& w6 ~# ^; }wt=1-wn;
0 C6 E9 f2 D6 p. zr=0.05;4 y3 U6 l! s7 z3 l% K8 ?
beta=1/(1+r);1 l5 ]2 e) Z/ t! h4 ^7 J# z1 m8 ?6 D
epislon=0.05;
. E# N, r5 E  Dphi=0.3;
* l# Q" r; l+ m; zy1=1;
* O2 I; @; x& y, oyn2=1;
' V) t! a$ Z# Q. O5 w$ vy2mean=1;
! g! B( _" H- y4 @5 s8 ?6 Xy3=1;3 `+ A/ @2 u$ y1 |0 c$ @2 n; }
theta=0.9;
- [- K1 t. i" X" _, b+ Z  w! fs=0.01;
6 l& l5 m1 k$ y5 E8 N0 Wd1=0.1;; O8 ~) Y8 a0 w# p8 P3 o2 C
ct1=s*(1-theta)*y1+d1/(1+r);% ct1也与s,d1相关;
& E! p( J: r2 V$ G/ K6 g; t; N6 E4 s1 I' O; _; @
f(1)=wt/ct1-beta*(1+r)*expect1;
* h: `/ j! }! Z  l$ ?/ df(2)=wt/ct1*y1*(1-theta)-beta*expect2;
) L8 L3 Y* U& ]( v: send
6 J0 J- E: T9 Z3 Y2 g: M . n# Y( L/ F* {
3 a+ r) ~- s" g' W2 r$ q7 w

该用户从未签到

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-8-13 10:38 , Processed in 0.125000 second(s), 26 queries , Gzip On.

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

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

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