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

matlab优化求解

[复制链接]

该用户从未签到

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

EDA365欢迎您登录!

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

x
关于matlab优化求解的问题请教大家;程序报错截图如下,我分析报错的原因是迭代点(s,d1)改变时,(expect1,expect2)未改变,具体问题描述如下:, M9 E1 s7 f9 M, m% _5 o! L
1.expect1,expect2是s,d1的函数,当fsolve函数按照优化算法找到新的点(s',d1')时,我的问题里时需要expect1,expect2也变化,这样fsolve的目标函数就也变化了;
) N* l- A, c, D/ o1 R, k2.根据上述1的描述,这个优化问题是否应该将(expect1,expect2)也纳入优化求解目标中去?这样该如何实现?
& K) `' x8 P' L  D. G, A5 w关于这样的编程问题思考了很久也没有编程思路,请求大家给予指导,我在代码中相应部分也对问题进行了表述,如果我的问题没有表述清楚,十分欢迎追问,先谢过大家。
) ?# o9 k3 |+ l) v. C$ W, ~; \clc;, Q, d" k) w4 p2 E  `' a9 }
clear all;
! I. u. J9 n" [2 ~%%%  赋值外生给定的参数  %%%4 X$ D) i( ^/ X% q% o; u9 U
wn=0.3;, D' B2 E8 |% u+ h
wt=1-wn;
+ Q7 Q" p4 A, @4 Ir=0.05;
; R* [" E+ i4 \: G+ q% G" ibeta=1/(1+r);
8 z2 A+ b* |  O& l1 ~epislon=0.05;  D# A5 i1 _# p4 T
phi=0.3;
- T" I! C5 P- D0 [8 U+ g2 K6 w/ By1=1;
9 z/ X# n& e# I1 jyn2=1;( e3 e5 A" J+ r* A2 a
y2mean=1;
% z; V2 |6 R, w; jy3=1;& @" j) v7 f% N) f5 q: C
theta=0.9;
/ i5 }( I* }1 @8 Y1 o3 y4 w, H+ e  C8 [( j! J  n0 S
% 赋值(y2,s,d1)
& _6 K* ~$ |8 M4 j; l* Uy2=0.95:0.01:1.05;5 m1 O5 i& o) I# r5 M# M9 c
s=0.1; %给s,d1的任意初值7 f- v1 W. O7 i& p7 [( x
d1=0.1;
; d: X% `8 q: m2 E5 E" r& Dx0 =[s,d1];2 I; f: u3 q0 p; K4 c

- K4 r0 E* i& k; `- O" A8 s0 R%在这个for循环里得到均值expect1,expect2,改变(s,d1),均值expect1,expect2也改变3 p8 Y* A) n5 D5 q( w) I* d
& |: z1 B, P; D3 T
for i=1:1:length(y2);  h: h" F# e3 v9 @( E5 V
s=0.01;
) u1 c& J( U% L4 y2 h" w: Bd1=0.1;: z6 S$ d0 J8 S6 Q1 x" p5 I( j: F5 i3 x

4 \0 M' {: `" a, p: W% U%%% 判断是否紧约束 %%%" B  s: X( }9 c1 i" H
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));$ |  R7 W* i$ x- i. Q) o
check(i)=d1/(1-s);
. h  E0 ?% R6 y  B+ r  Q9 J3 eif check(i)>standard(i)
$ [  \/ o0 U% L7 Z* ]    ct2(i)=((1-s)*y2(i)-d1+phi*(1-s)*y2(i))/(1-phi*wn/wt);
5 n7 {' t! S4 f- S7 u    d2(i)=phi*(1+r)*(wn/wt*ct2(i)+(1-s)*y2(i));% v1 O1 `6 i1 ^" g9 ^8 a! O+ ?
    ct3(i)=(1-s)*y3-d2(i);4 p" }. X9 n" n/ d& \! `  C* T
    mu(i)=wt/((1-s)*y2(i)-d1+d2(i)/(1+r))-beta*wt*(1+r)/((1-s)*y3-d2(i));# G' b% C' @, I! g9 l
+ W2 @7 p9 c" R" U: ^
else3 _1 \( d4 F% g( q7 b. U2 h7 r9 V4 J
    ct2(i)=((1-s)*y2(i)-d1+(1-s)*y3/(1+r))/(1+beta);
1 ^) k1 V! v1 n$ G    d2(i)=((1-s)*y3-beta*(1+r)*(1-s)*y2(i)+beta*(1+r)*d1)/(1+beta);0 a$ r  H* W6 c- m0 x8 R
    ct3(i)=(1-s)*y3-d2(i);% F# f- _8 L9 i8 Z
/ v" _8 B3 A. O. S% s" ^5 }" S
    mu(i)=0;& Q: g* C! d) _8 k9 ]+ ?% p' S! W
end
! U' y* D6 O  S4 p" ve1(i)=wt/ct2(i);%每给定一个y2(i),计算得到一个e1(i),e2(i)* k# [* C1 p& f
e2(i)=wt/ct2(i)*y2(i)+mu(i)*phi*y2(i)+beta*wt/ct3(i)*y3;
* C" F3 t$ _% {2 c' X. n& F
; V" V0 g9 L$ L! L6 w%%%求均值%%%! |" ~0 E  ?+ C% N6 ~* o. R
expect1=mean(e1(1,);
0 C% S; ~1 D% S5 B7 I2 R3 n$ ~expect2=mean(e2(1,);
- v& `$ ]5 _8 l! l) Fend
0 S4 l; v/ O8 I6 @2 O- I
! p* j" @) \" O0 n%我的问题中,expect1,expect2实质上是s,d1的函数0 V$ e; u0 Q1 ]: Q4 m" x/ [: Y1 P) K, K
%在用fsolve优化求解的时候,每迭代一个新的(s,d1),都应该运行一次上述for这个循环,得到新的expect1、expect2再进行优化求解,
; y, w  m& g  V, X8 \$ r1 {%也即(s,d1)变化时,expect1、expect2也要变化,如此fsolve的目标函数也变化0 I& z* X% U, j5 A. @+ K
%这样一个问题没有编程思路,请求大家给予指导,如果我的问题没有表述清楚,十分欢迎追问,谢谢。' I% m0 m; P" [: ]
( R: d6 k: ]3 m+ e5 ~0 [7 c( ?$ p
[x,fval,exitflag,output,]=fsolve(@(x)foc(x,expect1,expect2),x0);. ]6 c; G1 V1 Q: F1 ?
# E- _8 l2 H. X6 |$ z& ?$ D
function f=foc(x,expect1,expect2): \" q' ~- T% D  Z  F
wn=0.3;
  L% ]) b( Y3 ]- m5 U7 Vwt=1-wn;+ R. t+ _) b# `. d2 i+ y
r=0.05;& v# V2 ~$ e- R: o3 {- G8 |
beta=1/(1+r);
/ O% X  B) C- a1 Oepislon=0.05;, ~) r; N  r# L1 L3 S/ [" Z
phi=0.3;
' i  }+ `' p5 }- z$ p& \y1=1;
  {2 @+ E( v8 {9 Fyn2=1;
/ u& Z; H( {# r! k6 Fy2mean=1;  J, h; W* t7 G/ J1 N4 ~: q" u9 A
y3=1;, X% P- g/ Z  A3 i: a" z
theta=0.9;
  R% [2 e0 U( t0 ]. Ws=0.01;
8 }! ~) [0 u0 {- nd1=0.1;% t" M& H: c$ q2 J$ l
ct1=s*(1-theta)*y1+d1/(1+r);% ct1也与s,d1相关;
7 k. B- F" y- N2 q0 L' E& P% d( N; o7 A
f(1)=wt/ct1-beta*(1+r)*expect1;
" d. q! \2 q1 D! rf(2)=wt/ct1*y1*(1-theta)-beta*expect2;( L( j4 Y4 A5 n( D/ K/ s. ~8 N& @
end3 j) p) V5 Z. f) `4 s* @0 e

1 ~' W' }2 k3 i( J9 U) Z0 M$ I' y/ e7 N# F5 T) n& M4 M, S

该用户从未签到

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 12:07 , Processed in 0.171875 second(s), 26 queries , Gzip On.

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

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

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