• 非线性规划问题的matlab求解


    函数:[x, fval] = fmincon(FUN, X0, A, B, Aeq, Beq, LB, UB, NONLCON)

    返回的x:是一个向量——在取得目标函数最小时各个xi的取值;

    返回的fval:目标函数的最小值;

    参数FUN:目标函数;

    参数X0:向量x的初始值;

    参数A:线性不等式约束的系数矩阵,若没有线性不等式约束,则A = []

    参数B:线性不等式约束右端的常数列,若没有线性不等式约束,则B = []

    参数Aeq:线性等式约束的系数矩阵,若没有等式约束,则Aeq = []

    参数Beq:线性等式约束右端的常数列,若没有等式约束,则Beq = []

    参数LB:x的下界,常遇到的x1, x2, x3 >= 0,0就是下界,可用zeros(3, 1)生成一个3行1列的向量来表示,其中向量的每个元素的值为0;

    参数UB:x的上界;

    参数NONLCON:用.m文件定义的非线性向量函数C(x), Ceq(x)。

    -------------------------------------------------------------------------------------------------------------

    求f(x)的最小值及f(x)取得最小值时x的取值:

    min f(x) = x1^2 + x2^2 + 8

    约束条件:

    x1^2 - x2 >= 0

    -x1 - x2^2 + 2 = 0

    x1, x2 >= 0

    -------------------------------------------------------------------------------------------------------------

    编写目标函数.m文件(不要写在主.m文件里)FUN.m(文件名要与函数名相同

     

    %写下面两行就可以了
    function f = FUN(x);
    f = x(1)^2 + x(2)^2 + 8;

    保存。

    编写非线性约束向量函数.m文件(不要写在主.m文件里)NONLCON.m文件名要与函数名相同

    %写下面3行就可以了
    function [g, ceq] = NONLCON(x);
    g = -x(1)^2 + x(2);     %非线性不等式约束
    ceq = -x(1) - x(2)^2 + 2;       %非线性等式约束

    保存。

    最后编写主体.m文件

     

    X0 = rand(2, 1);
    A = [];
    B = [];
    Aeq = [];
    Beq = [];
    LB = zeros(2, 1);
    UB = [];
    [x, fval] = fmincon('FUN', X0, A, B, Aeq, Beq, LB, UB, 'NONLCON')

    保存运行,得

     

    x =
    
        1.0000
        1.0000
    
    
    fval =
    
        10




  • 相关阅读:
    Angularjs中文教程
    IE兼容性 css处理常见
    手写画板实现并转化成图片
    canvas 最基本简单的示例
    凡科 网站地址
    IOS学习之路二十二(UIAlertView获得文本框内容及添加北京图片)
    IOS学习之路十四(用TableView做的新闻客户端展示页面)
    IOS开发之路二十一(UIWebView加载本地html)
    iOS学习之路十三(动态调整UITableViewCell的高度)
    IOS学习之路十二(UITableView下拉刷新页面)
  • 原文地址:https://www.cnblogs.com/suncoolcat/p/3315385.html
Copyright © 2020-2023  润新知