求matlab编程求解贝塔的最大最小值

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/09 11:08:25
求matlab编程求解贝塔的最大最小值

求matlab编程求解贝塔的最大最小值
求matlab编程

求解贝塔的最大最小值

求matlab编程求解贝塔的最大最小值
参考代码:
function zd1829630755957934620
f=@(u)sqrt(u(1)^2+u(2)^2);
[u,fval,flag] = fmincon(f,[1 1 50],[],[],[],[],[-inf -inf 45],[inf inf 55],@nlcon)
[u,fval,flag] = fmincon(@(u)-f(u),[1 1 50],[],[],[],[],[-inf -inf 45],[inf inf 55],@nlcon)
num2str(u) 
 
function [c,ce] = nlcon(u)
c = [];
ce = (200+10*u(1)+sqrt(2)*u(3)) / (200+10*u(2)) - 1;
两次调用fmincon, 第一次是求最小值,第二次是求最大值.
 
输出:
u =
   -3.1820    3.1820   45.0000

fval =
    4.5000

flag =
     5
 
u =
  1.0e+016 *
    1.2133    1.2133    0.0000

fval =
 -1.7159e+016

flag =
     1

ans =
12133488015431316  12133488015133054                 55
其中,u(3)就是R2.
需要注意:第二组结果求最大值,fval应该取反号,u的数值直接显示效果不好(由于数量级相差比较大),所以用num2str转换了显示.