matlab实现非线性规划
生活随笔
收集整理的這篇文章主要介紹了
matlab实现非线性规划
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
主函數(shù):
%標(biāo)準(zhǔn)形式 % 命令窗口調(diào)用: [x,fval]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options) % fun指目標(biāo)函數(shù)文件,''調(diào)用文件 % nonlcon指非線性約束條件,''調(diào)用文件 % options可忽略 % x0指初值 % A指不等式左向系數(shù),同一式下用逗號(hào),不同式下用分號(hào) % B指不等式右向系數(shù),用分號(hào)間隔 % Aeq指等式左向系數(shù),同一式下用逗號(hào),不同式下用分號(hào) % Beq指等式右向系數(shù),用分號(hào)間隔 % LB指變量范圍最小值,UB指變量范圍最大值%沒有明確規(guī)定的范圍(輸入?yún)?shù)不存在),使用[]表示 %X代表向量取值,FVAL為最優(yōu)值% 舉例: % min f(x) = x1^2+x2^2+x3^2+8 % st: % x1^2-x2+x3^2 ≥ 0 % x1+x2^2+x3^2 ≤ 20 % -x1-x2^2+2 = 0 % x2+2x3^2 = 3 % x1,x2,x3 ≥ 0[x,y]=fmincon('fun1',rand(3,1),[],[],[],[],zeros(3,1),[],'fun2')fun1函數(shù):
%注意取多項(xiàng)式時(shí)為點(diǎn)乘 function f=fun1(x); f=x(1).^2+x(2).^2+x(3).^2+8;fun2函數(shù):
%注意g,h要用中括號(hào)起來,g代表不等式約束,h代表等式約束 %必須保證是≤,右側(cè)為0(常數(shù)移項(xiàng)左側(cè)) function [g,h]=fun2(x); g=[-x(1).^2+x(2)-x(3).^2x(1)+x(2).^2+x(3).^3-20]; h=[-x(1)-x(2).^2+2x(2)+2*x(3).^2-3];參考博客:https://blog.csdn.net/weixin_42317398/article/details/107122186
總結(jié)
以上是生活随笔為你收集整理的matlab实现非线性规划的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C/C++:Winsock网络编程—pi
- 下一篇: matlab画横的/水平的条形图