查看: 163|回复: 0|关注: 0

[未答复] 非线性优化问题 循环

[复制链接]

新手

15 麦片

财富积分


050


9

主题

18

帖子

0

最佳答案
发表于 2020-6-28 15:55:02 | 显示全部楼层 |阅读模式
各位前辈,有个问题想咨询一下,我求解的是一个非线性优化问题,但是目前想变化一个参数,看看这个参数和最优解的变化趋势,代码如下

%非线性约束条件

function[c, ceq] = ConFuna(x)

alpha = 0.3; lambdaH = 0.8; lambdaL = 0.4;

  psi1 = alpha * (1 - lambdaH) * (1 - lambdaL) * (lambdaH - lambdaL);

  psi2 = (1-alpha) * lambdaL^2 * (1-lambdaH)^2 + alpha * (1-lambdaL)^2 * lambdaH^2 + x(1) * (1-lambdaH) * (1-lambdaL) * (lambdaH - lambdaL);

  psi3 = (1 - lambdaL)^2 * x(1) * lambdaH^2;

  DELTA_psi = (psi2)^2 - 4 * psi1 * psi3;
   
  K2 = (psi2 - sqrt(DELTA_psi))/(2*psi1);

  c = [x(2)-K2];

  ceq = [];

end

% 目标函数
function y = OptimFun(x)

  alpha = 0.3; lambdaH = 0.8; lambdaL = 0.4;


y = -((alpha * lambdaH + (1-alpha) * lambdaL) * x(1) - (alpha * x(2)^2 * (1-lambdaH)^2) ./ (lambdaH - x(2) * (1-lambdaH))+(1 - lambdaL)^2 * (x(1) - alpha * x(2)) * (alpha * x(2) * lambdaH - (alpha * lambdaH + (1-alpha) * lambdaL) * x(1)) ./ ((1-alpha)*lambdaL^2-lambdaL*(1-lambdaL)*(x(1)-alpha*x(2))));

end

%求解优化问题

clear all; close all; clc;

alpha = 0.3; lambdaH = 0.8; lambdaL = 0.4;

x0 = [0 0];

  A = [1 -1];
  
  b = 0;
  
  Aeq = []; beq =[];

  lb=[0 0];

  ub=[lambdaL^2/(1-lambdaL)  alpha*lambdaH^2/(1-lambdaH)+(1-alpha)*lambdaL^2/(1-lambdaL)];

  [x,fval,exitflag,output,lambda,grad,hessian] = fmincon(@OptimFun,x0,A,b,Aeq,beq,lb,ub,@ConFuna)


x0 = [lambdaH^2/(1-lambdaH)  lambdaH^2/(1-lambdaH)];
A = [1 -(alpha)];
b = (1-alpha)*lambdaL^2/(1-lambdaL);
Aeq = []; beq =[];
lb=[lambdaL^2/(1-lambdaL) lambdaL^2/(1-lambdaL)];
ub=[alpha*lambdaH^2/(1-lambdaH)+(1-alpha)*lambdaL^2/(1-lambdaL)  lambdaH^2/(1-lambdaH)];
[x,fval,exitflag,output,lambda,grad,hessian] = fmincon(@OptimFun,x0,A,b,Aeq,beq,lb,ub,@ConFuna)



由于约束条件是个分段的,所以我求了两次优化问题,然后再比较大小,找出最优的那个,感觉这个方法比较笨,请问有没有好的方法?

还有就是我想固定\lambda_H 和 \lambda_L不变,看看最优解随着\alpha的变化趋势,因为这里我都是手动给定的,要画图的话,手动改参数是不是不是一种好的办法,这里可能就要用到一个关于\alpha 的循环,但是我试了几次都没有成功,请问应该怎么处理, 谢谢大家了!
回复主题 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

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