Matlab求解非线性规划问题

2024-05-19 15:52

1. Matlab求解非线性规划问题

有以下几个问题:
(1)你这是多目标,还是单目标。
(2)你的约束为线性约束,不需要mycon1这个函数(而且你也用得不对)。
(3)你的fun44(x),x是向量,你的程序里不能有y,z,应使用x(1),x(2),x(3)表示。
(4)Ax<=b,那你的A应该是一个对应约束的矩阵。
代码我就不帮你写了,你再看下帮助文件应该能懂的。

Matlab求解非线性规划问题

2. MATLAB11:求解线性规划问题

 求解线性规划问题
      无论我们做什么事,都希望用最小的代价换取最大的利益,而线性规划就是解决这类问题的一个重要方法,下面我们通过几个具体的示例来介绍一下如何使用线性规划
      某工厂生产三种产品,下面的表是这三种产品的利润和原料消耗,据此制定一个总利润最大的生产计划   
                                                                                   
      语法  [x,fval] = linprog(f,A,b,Aeq,beq,lb,ub,x0,options)      注意:linprog()解决问题的标准格式如下:
                                              根据标准格式, 需要转换例一的问题为最小化问题! 
      z=-fval=2675

3. 求助:MATLAB求非线性规划的问题

用fmincon()函数,可以求得非线性规划  x1*x2 的最大值。
x1=8,x2=0.36788,f=2.943

代码如下:

求助:MATLAB求非线性规划的问题

4. MATLAB 非线性规划问题

从你程序代码分析,主要存在如下问题:
1、目标函数书写问题。fun2(x)是目标函数,其输出变量g为约束变量,h为非约束变量,所以fun2(x)函数应改为
function [g,h] = fun2(x)
g(1) =[x(1)-1]; 
g(2) =[x(2)-1];
h = [];
2、选项问题。options = optimset('largescale','off'),此选项不适用于fmincon()函数。应做如下改动
options = optimoptions('fmincon','Algorithm','interior-point');
x0=[0,0]
[x,fval,exitflag] = fmincon(@(x) fun1(x),x0,[],[],[],[],[0,0],[],@(x)fun2(x),options)
更改后运行结果

5. 用matlab求非线性规划问题的最优解

题主给出的非线性规划问题,其最优解可以用matlab的fmincon函数求解,求解方法如下:
1、根据条件,确定x、y、z的上下限
lb=[0,0,5];ub=[15,5,8];
2、自定义目标函数,fmincon_fun(k),即
x=k(1);y=k(2);z=k(3);
m=21.6*sqrt(5^2+(8-z)^2 )+7.2*(sqrt(x^2+(5-x)^2 )+y+sqrt((15-x)^2+(z-x)^2 ));
3、使用fmincon函数求解,其M的最小值
[k,fval] = fmincon(@(k) fmincon_fun(k),k0,[],[],[],[],lb,ub)
其中:x=k(1);y=k(2);z=k(3);ymin=fval
4、按上述方法,编程运行可以得到如下结果。


用matlab求非线性规划问题的最优解

6. matlab求一线性规划问题的最优解

求这个线性规划问题,可以用matlab的最小值函数fmincon。fmincon极小值函数适应用于求约束非线性多变量函数的最小值。该问题求解方法如下:
1、建立目标函数,即
z=80*x11+90*x12+75*x13+60*x21+85*x22+95*x23+92*x31+80*x32+110*x33;
2、建立约束函数,即
ceq(1)=100-(x11+x12+x13); 
ceq(2)=170-(x21+x22+x23);
ceq(3)=200-(x31+x32+x33);
ceq(4)=120-(x11+x21+x31); 
ceq(5)=170-(x12+x22+x32);
ceq(6)=180-(x13+x23+x33);
3、用fmincon函数求解,即
x0=zeros(1,9);
A=[];b=[ ];
Aeq=[];beq=[];
lb=zeros(1,9);ub=[];
[x,fval,exitflag]=fmincon(@(x)myfunc(x),x0,A,b,Aeq,beq,lb,ub,@(x)myconc(x));
4、求解结果


7. MATLAB 求解下列多变量非线性规划问题

1/11 分步阅读
开始第一步我们打开在电脑桌面找到matlab小程序,然后鼠标右击打开桌面上matlab程序,运行起来。由于不同人电脑的配置不一样,软件打开的速度也有所不同,一般固态硬盘比机械硬盘运行的要快好多。大家稍微等待一下。

2/11
我们为了便于保存数据,我们点击matlab左上角新建脚本命令,创建新的脚本,创建M文件,也便于程序的保存,我们可以将其保存在电脑的其他盘,以便于我们的寻找和使用,这也是比较常见的方式。

3/11
这是一个常见的二次非线性规划的方程,有目标函数,有约束条件,让其在约束条件的情况下求其的最优解和最优值
下面问题有五个约束条件
求约束条件的最小值

4/11
首先建立一个M文件fun_ex5.m文件
输入程序如下
 function f=fun_ex5(x);
 f=2*x(1)-x(2)*exp(x(1));
 其中exp代表指数函数
*代表乘
5/11
新建的文件如下图所示
是一个m文件
m文件只能通过matlab打开
不能再桌面上直接双击打开
大家注意下
6/11
建议另一个m文件,文件名为mycon_ex5.m,定义非线性的约束
程序如下
function [g,ceq]=mycon_ex5(x)
 g=[x(1)^2+(x2)^2-12;x(1)^2-x(2)^2-5];
 ceg=[ ];
注意符号书写的方式
以及字母书写方式
7/11
新建的文件如下图所示
是一个m文件
m文件只能通过matlab打开
不能再桌面上直接双击打开
大家注意下
8/11
输入程序:
>> x0=[1;1];
>> lb=[0;0];
>> ub=[5;8];
9/11
输入程序:
>> [x,fval,exitflag,output]=fmincon('fun_ex5',x0,[],[],[],[],lb,ub,'mycon_ex5')
记住字母书写的方式
以及输入状态
10/11
最优值为
fval=-28.7000
11/11
最优解为
x=2.9155
1.8708

MATLAB 求解下列多变量非线性规划问题

8. 求助数学线性规划问题

5x1+4x2+3x3=(3x1+x2+x3)+(2x1+3x2+2x3)≤840+700=1540 
所以最大值为1540