目录
前言
一、非线性规划问题是什么?
二、非线性规划的数学模型
1.一般形式
三、线性规划的 Matlab 解法
Matlab 中非线性规划的数学模型:
2.Matlab 中的命令:
前言
本篇讲述非线性规划问题极其matlab解法
一、非线性规划问题是什么?
如果目标函数或约束条件中包含非线性函数,就称这种规划问题为非线性规划问题。一般说来,解非线性规划要比解线性规划问题困难得多。而且,也不像线性规划有单纯形法这一通用方法,非线性规划目前还没有适于各种问题的一般算法,各个方法都有自己特定的适用范围。
下面通过实例归纳出非线性规划数学模型的一般形式,介绍有关非线性规划的基本概念。
二、非线性规划的数学模型
1.一般形式
其中 x = [ x 1 .... x n ] T 称为模型(NP)的决策变量f 称为目标函数g i ( i = 1,...., p ) 和 h j ( j = 1,....,q ) 称为约束函数另外, g i ( x ) = 0 ( i = 1,...., p ) 称为等式约束h j ( x ) ≤ 0 ( j = 1,....,q ) 称为不等式的约束
三、线性规划的 Matlab 解法
-
Matlab 中非线性规划的数学模型:
其中 f (x)是标量函数, A, B, Aeq, Beq是相应维数的矩阵和向量,C(x),Ceq(x) 是非
2.Matlab 中的命令:
[x,fval]=fmincon(fun,x0,A,b,Aeq,beq,lb,ub,nonlcon,options)
x的返回值是决策向量x的取值
fval返回的是目标函数的取值,其中fun是用M文件定义的函数 ;
x0是x的初始值;
A,b,Aeq,beq定义了线性约束 如果没有线性约束,则A=[],b=[],Aeq=[],beq=[];lb和ub是变量x的下界和上界,如果上界和下界没有约束,即x无下界也无上界,则lb=[],ub=[],也可以写成 lb的各分量都为-inf,ub的各分量都为inf;
nonlcon是用M文件定义的非线性向量函数c(x),ceq(x);
options定义了优化参数,可以使用Matlab缺省的参数设置。
(看不懂没关系,后边的例题你会明白的)
3、例题1----二次规划问题
clc
clear all
fun = @(x)100*(x(2)-x(1)^2)^2 + (1-x(1))^2;
x0 = [1,1];%初始点设置自行不同
A = [1,-2];
b = 1;
Aeq = [2,1];
beq = 1;
[x,y] = fmincon(fun,x0,A,b,Aeq,beq)
例题2---含非线性约束条件问题
目标函数
min f (x) = x1^2 + x2^2 + x3^2 + 8
约束条件
x1^2 − x2 + x3 ^2 ≥ 0
x1 + x2^2 + x3 ^3 ≤ 20
− x1 − x2^2 + 2 = 0
x2 + 2x3^2 = 3x1
x1,x2 , x3 ≥ 0
解法
clc
clear all
%% 主函数
options=optimset('largescale','off');
[x,y] = fmincon(@fun,rand(3,1),[],[],[],[],zeros(3,1),[], @nonlcon, options)
%% 目标函数
function f=fun(x)
f=sum(x.^2)+8;
end
%% 非线性约束条件
function [c,ceq]=nonlcon(x)
c=[-x(1)^2+x(2)-x(3)^2
x(1)+x(2)^2+x(3)^3-20]; %非线性不等式约束
ceq=[-x(1)-x(2)^2+2
x(2)+2*x(3)^2-3]; %非线性等式约束
end
文章来源:https://www.toymoban.com/news/detail-462288.html
【源自http://t.csdn.cn/ijHZc】文章来源地址https://www.toymoban.com/news/detail-462288.html
到了这里,关于数学建模学习---非线性规划的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!