이번역페이지는최신내용을담고있지않습니다。최신내용을문으로보려면여기를클릭하십시오。
fmincon
솔버로최적화라이브편집기작업사용
이예제에서는fmincon
솔버와함께최적화라이브편집기작업을사용하여선형및비선형제약조건과범위가적용된2차함수를최소화하는방법을보여줍니다。
다음식의해가되는[x]1, x2를구하는문제가있다고가정하겠습니다。
여기에는다음제약조건이적용됩니다。
이문제의시작점x0
은x1= 3및x2= 1입니다。
최적화라이브편집기작업시작하기
홈탭의파일섹션에서새라이브스크립트버튼을클릭하여새라이브스크립트를만듭니다。
최적화라이브편집기작업을삽입합니다。삽입탭을클릭한다음코드섹션에서작업>최적화를선택합니다。
이후에문제데이터입력시사용하기위해,삽입>섹션나누기를선택합니다。작업위와아래에새섹션이나타납니다。
문제데이터입력하기
작업맨위에서부터시작해문제유형과제약조건유형을입력합니다。목적함수> 2차버튼과제약조건>하한,선형부등식,비선형버튼을클릭합니다。작업에시되는권장솔버는
fmincon
입니다。목적 함수
목적함수가단순해익명함수로현하기좋습니다。작업위섹션에커서를놓고아래코드를입력합니다。
乐趣= @(x)sum(x.^2);
하한
이문제에는하한x1≥0.5가포함됩니다。이범위를변수
磅
로현합니다。목적함수를정의하는라,의끝에커서를둔상태에서输入키를누르고하한을지정하는다음코드를입력합니다。lb = [0.5 -Inf];
초기점
하한을정의하는라,의끝에커서를둔상태에서输入키를누르고초기점을설정하는다음코드를입력합니다。
X0 = [3,1];
선형제약조건
초기점을정의하는라,의끝에커서를둔상태에서输入키를누르고선형제약조건을설정하는다음코드를입력합니다。
A = [-1,-1];B = -1;
섹션실행하기
맨위섹션에는이제5개의파라미터가포함되어있습니다。
다음으로,작업공간에파라미터를변수로배치하기위해섹션을실행해야합니다。그렇게하려면대각선줄무늬@시줄이있는섹션의맨왼쪽@역을클릭하십시오。이영역을클릭하면줄무늬표시줄이실선표시줄로바뀌어변수가이제작업공간에있음을나타냅니다。(참고:按Ctrl + Enter를눌러섹션을실행할수도있습니다。)
문제데이터설정하기
작업의문제데이터선택섹션에변수를입력합니다。목적함수를지정하기위해목적함수>함수핸들을선택하고有趣的을선택합니다。
초기점x0을설정합니다。
하한>작업공간에서와磅를차례로선택합니다。
선형부등식网址:역에서선형부등식제약조건변수
一个
와b
를설정합니다。이제비선형부등식제약조건을지정합니다。문제데이터선택섹션에서비선형>로컬함수를선택한후새로만들기버튼을클릭합니다。함수가작업아래의새섹션에나타납니다。나타나는코드를편집하여다음코드라,이포함되도록합니다。
函数[c,ceq] = constraintFcn(x)可以包含注释代码行,也可以不包含。确保只保留这些未注释的行:C = [-x(1)²-x(2)²+ 1;-9*x(1)²- x(2)²+ 9;-x(1)^2 + x(2);-x(2)^2 + x(1)];Ceq = [];结束
문제데이터선택섹션에서constraintFcn함수를선택합니다。
진행률모니터링하기
작업의진행률시섹션에서텍스트시>각반복시를선택하면솔버진행률을모니터링할수있습니다。플롯에대해목적함수값을선택합니다。
다음과같이설정했습니다。
솔버실행및결과검토하기
솔버를실행하려면작업창오른쪽상단에있는⁝옵션버튼을클릭하고섹션 실행을선택합니다。
플롯은별개의图창과작업출력。
해변수가반환되는위치를확,하려면작업의맨위를보십시오。
최종점과최종점에연결된목적함수값은작업공간의解决方案
및objectiveValue
변수에나타납니다。작업아래의라이브편집기섹션에다음코드를입력하여이들값을확,합니다。
解决方案,objectiveValue
按Ctrl + Enter를눌러섹션을실행합니다。