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

matlab优化求解

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
关于matlab优化求解的问题请教大家;程序报错截图如下,我分析报错的原因是迭代点(s,d1)改变时,(expect1,expect2)未改变,具体问题描述如下:
5 j/ }8 R' W, H; }) g1.expect1,expect2是s,d1的函数,当fsolve函数按照优化算法找到新的点(s',d1')时,我的问题里时需要expect1,expect2也变化,这样fsolve的目标函数就也变化了;2 `9 U% e. S8 r+ E5 W+ T. U
2.根据上述1的描述,这个优化问题是否应该将(expect1,expect2)也纳入优化求解目标中去?这样该如何实现?* \- F7 M5 {4 C2 ]7 z' ^+ z! n! P. G
关于这样的编程问题思考了很久也没有编程思路,请求大家给予指导,我在代码中相应部分也对问题进行了表述,如果我的问题没有表述清楚,十分欢迎追问,先谢过大家。# `) f; V0 D& h( A4 t3 x  ^
clc;
6 i0 `* @6 R  Z& ?0 X& s* d; Xclear all;+ s+ w, E! t  W7 q! N' r
%%%  赋值外生给定的参数  %%%
( \# a' i# X  I- e; fwn=0.3;# b" j4 t+ X2 H: q
wt=1-wn;8 E8 h8 Z1 V( `8 j0 n7 r
r=0.05;' ^9 d$ n; {$ n, g9 q
beta=1/(1+r);
% y; P6 g: P' R! ?epislon=0.05;; w8 I' I" N6 B
phi=0.3;- [; ?  ]2 W6 l4 N& O+ z
y1=1;3 x" m2 _3 m/ H$ O4 K" K) J% e- U
yn2=1;2 `% P* Q, ?& W) h
y2mean=1;7 N: J+ k9 h+ i6 j
y3=1;
6 h- x- c8 Q9 Jtheta=0.9;7 ]) M" T9 P% n$ H

$ ]# h, r4 w7 k/ s/ B, g6 X% 赋值(y2,s,d1)
' Z+ k$ U* e: S( [6 fy2=0.95:0.01:1.05;, b4 f4 ~- J# ]- X
s=0.1; %给s,d1的任意初值/ R, y9 d* k: i% P
d1=0.1;4 f" e3 j1 w2 U0 B# f' C
x0 =[s,d1];
* ]  Y9 ^# a" A( y! e8 C; o) ^; O. Y  k3 I9 R
%在这个for循环里得到均值expect1,expect2,改变(s,d1),均值expect1,expect2也改变0 o, Y8 n4 T1 }2 m3 p, g

* t# R, \  f! i1 h1 E( t$ ^for i=1:1:length(y2);) E9 E+ x" ~- {0 B' a5 Z
s=0.01;
3 ~0 S. ~' z6 c/ E/ Sd1=0.1;$ W3 r8 c8 h) U
# D4 h3 z* x. w
%%% 判断是否紧约束 %%%/ J: l6 ^! V' N
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));
% o% c! n3 W* H  z7 ]  V9 b# mcheck(i)=d1/(1-s);
8 a; x5 \6 [6 C2 \* Dif check(i)>standard(i)& S+ b0 s% F1 |* b
    ct2(i)=((1-s)*y2(i)-d1+phi*(1-s)*y2(i))/(1-phi*wn/wt);
3 \8 C7 {7 [- g* v9 `' M4 S    d2(i)=phi*(1+r)*(wn/wt*ct2(i)+(1-s)*y2(i));
' \1 P: b% v6 O% a0 j! q1 K6 E    ct3(i)=(1-s)*y3-d2(i);% ~+ p+ K( r! j* {
    mu(i)=wt/((1-s)*y2(i)-d1+d2(i)/(1+r))-beta*wt*(1+r)/((1-s)*y3-d2(i));$ _8 [, W& A; [
4 ]. A. ^, L2 A
else
- T# q5 J0 H/ S0 ^  i    ct2(i)=((1-s)*y2(i)-d1+(1-s)*y3/(1+r))/(1+beta);
7 x+ ~  a( f! ]$ v    d2(i)=((1-s)*y3-beta*(1+r)*(1-s)*y2(i)+beta*(1+r)*d1)/(1+beta);9 ^; n* Z3 J  k* p
    ct3(i)=(1-s)*y3-d2(i);
4 l0 l1 E8 p  v0 M: N9 _
) ^9 f6 u) L9 d0 n    mu(i)=0;
4 ]! w3 p' h8 I  ?; Zend5 \5 X4 b6 k7 E0 S/ g( m/ n) @1 r
e1(i)=wt/ct2(i);%每给定一个y2(i),计算得到一个e1(i),e2(i)
9 l$ |. M) T! B6 k2 l$ re2(i)=wt/ct2(i)*y2(i)+mu(i)*phi*y2(i)+beta*wt/ct3(i)*y3;; \2 t* f% d5 N
3 L5 e# O, s9 q3 K
%%%求均值%%%( J% B. b* K9 o, G" l# l) X( t
expect1=mean(e1(1,);   t* G" i4 ~9 E! L/ E7 e
expect2=mean(e2(1,);/ }/ G' n: ]3 v% J8 z+ s
end/ P$ P! B4 U2 C2 ]
; F+ Q7 O+ v" ]
%我的问题中,expect1,expect2实质上是s,d1的函数' h0 t1 c  g. `2 O: o% Q( e
%在用fsolve优化求解的时候,每迭代一个新的(s,d1),都应该运行一次上述for这个循环,得到新的expect1、expect2再进行优化求解,; |3 D8 o( k. y4 X/ E. n9 l
%也即(s,d1)变化时,expect1、expect2也要变化,如此fsolve的目标函数也变化( r+ o9 p! D( i8 [6 C
%这样一个问题没有编程思路,请求大家给予指导,如果我的问题没有表述清楚,十分欢迎追问,谢谢。6 s- ~, w7 i$ g% S- J' |
* f4 W) A( D+ M, f3 p2 O  X7 [# S
[x,fval,exitflag,output,]=fsolve(@(x)foc(x,expect1,expect2),x0);
; K5 ^6 w6 w" d& \: s
& \, m$ @( {' X7 O8 qfunction f=foc(x,expect1,expect2)& i0 E& F7 I0 Q* q8 Y5 a
wn=0.3;* ?8 y8 h& X4 q8 {
wt=1-wn;
5 s$ F. _  b. dr=0.05;
$ u( |9 ^3 b4 u$ y3 qbeta=1/(1+r);
! S/ S! d+ |7 d# w2 S3 Iepislon=0.05;. e7 j- C2 ?4 ^. @# `; R$ E
phi=0.3;
$ W7 V0 K4 n3 {0 E5 \6 }y1=1;0 U1 d. c6 D% M1 D5 l5 c
yn2=1;! n: `( _+ B4 X' [, z: V- B
y2mean=1;
$ f) a7 w3 F2 d' uy3=1;
/ m0 ]* E, _4 z% [) K+ v5 Dtheta=0.9;8 z! i% N7 \! m* |4 ?) w
s=0.01;
6 Q) o/ }7 ^7 y$ t* V4 Ld1=0.1;
  x+ u! Q: q$ A  s! S# qct1=s*(1-theta)*y1+d1/(1+r);% ct1也与s,d1相关;
2 |, c9 E- l# l6 J) ^8 {  W0 H' b  H
f(1)=wt/ct1-beta*(1+r)*expect1;. s3 F8 w' T0 V0 i
f(2)=wt/ct1*y1*(1-theta)-beta*expect2;0 A" U- g+ b, o! c$ W) d" y
end
$ ^0 c2 \/ L, M4 n
- `1 z) U7 f' L$ I; h( @7 e8 H; u- l6 U) y/ Z6 v2 \4 ]3 E$ j) Q' P  Y

该用户从未签到

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-10-31 23:58 , Processed in 0.140625 second(s), 26 queries , Gzip On.

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

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

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