用matlab解非线性规划问题

目标函数:function f= fun3(x);
f=3000/x(1)+180/x(2)+2160/x(3)+210/x(4)+2700*0.2/x(5)+82.25;

约束条件:x1+x2+x4+x4+x5=23.5;
0<x1,x2,x3,x4,x5<23.5
代码:

x0=[4.7;4.7;4.7;4.7;4.7];
A=[];
b=[];
Aeq=[1 1 1 1 1];beq=[23.5];
VLB=[0;0;0;0;0];VUB=[23.5;23.5;23.5;23.5;23.5];
[x,fval]=fmincon('fun3',x0,A,b,Aeq,beq,VLB,VUB);

出错:Warning: Trust-region-reflective method does not currently solve this type of
problem,
using active-set (line search) instead.

求教 我是新手

x0=[4.7;4.7;4.7;4.7;4.7];
A=[];
b=[];
Aeq=[1 1 1 1 1];beq=[23.5];
VLB=[1e-4;1e-4;1e-4;1e-4;1e-4];VUB=[23.5;23.5;23.5;23.5;23.5];
options=optimset('largescale','off','display','final','tolx',1e-16,'tolfun',1e-16,'MaxFunEvals',600000,'MaxIter',30000);
[x,fval,exitflag,output]=fmincon(@fun3,x0,A,b,Aeq,beq,VLB,VUB,[],options);
disp('fval=');
disp(fval);
disp('exitflag=');
disp(exitflag);
disp('output=');
disp(output);
disp('x=');
disp(x);
运行结果
Optimization terminated: Search direction less than 2*options.TolX
and maximum constraint violation is less than options.TolCon.
No active inequalities
fval=
1.0705e+003

exitflag=
4

output=
iterations: 147
funcCount: 1072
stepsize: 1
algorithm: 'medium-scale: SQP, Quasi-Newton, line-search'
firstorderopt: 4.6830e-006
cgiterations: []
message: [1x129 char]

x=
8.4462
2.0689
7.1668
2.2347
3.5834

下界不要是0,那样会出现除数为0的错误,也不要太小,太小也可能搜索不到。
温馨提示:内容为网友见解,仅供参考
无其他回答

利用matlab 求解非线性规划问题
利用matlab 求解非线性规划问题,其运行代码编写,可以这样来考虑:1、创建目标函数,myobj(x)f=-(2*x1+3*x1^2+3*x2+x2^2+x3)2、创建约束条件函数,mycon(x)根据给出的条件,来写不等式条件和等式条件 3、使用fmincon()函数,求解x1,x2,x3。即 [x,fval,exitflag]=fmincon(@myobj,x...

三用matlab或lingo求解以下非线性规划问题:(1maxf(x)=x2 +x22 +x...
对于非线性规划问题,一般需要使用专门的优化软件或库来求解。该函数可以处理具有约束的非线性最小化问题。以下是MATLAB代码:matlab% 定义目标函数 f = @(x) x.^2 + x.^4 + x;定义约束条件 x0 = 0; % 初始值 A = []; % 不存在等式约束 b = []; % 不存在等式约束 lsqminconf(@(x...

用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...

matlab 求解非线性规划 代码
matlab 求解非线性规划可以用fmincon函数来求解。求解过程如下:第一步、自定义目标函数,fmin(x)fmin=@(x) 0.007395768*x(1)^2 + 0.002729374*x(2)^2 + 0.006876885*x(1)*x(2)第二步、确定初始条件,即x0=[0,0]第三步、确定等式条件,即Aeq=[1,1],beq=[1]第四步、确定x的上下...

如何在MATLAB中用蒙特卡洛法解非线性规划问题
MATLAB编程步骤:1 确定求解的非线性规划问题 2 依次编写三个m文件,首先编写目标函数的m文件 3 然后编写约束条件的m文件 4 再依据蒙特卡洛法求解的基本思想编写主程序的m文件。先初始化,利用unifrnd函数产生服从均匀分布的随机数,作为试验点。5 然后调用目标函数和约束条件的m文件,找出最优解 6 最后...

用matlab求解非线性规划问题,在非线性约束条件下
x=0:0.1:1;y=x;[X,Y]=meshgrid(x,y);Z=X+Y*(1-0.5*X)*(1+X).^2-0.5*X.^2-0.5*Y.^2;>> mesh(X,Y,Z)

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()函数。应做如下...

求助:MATLAB求非线性规划的问题
用fmincon()函数,可以求得非线性规划 x1*x2 的最大值。x1=8,x2=0.36788,f=2.943 代码如下:

求解各位大神,matlab的一道简单非线性规划问题
用matlab求解这类极值问题,是无法求得其结果。必须给出n、b的已知值,如n=10,b=1050时,可以用fmincon函数求得。实现方法:x0=ones(1,10);lb=[0,0,0,0,0,0,0,0,0,0];ub=[];[x,fval] = fmincon(@(x) fmincon_fun(x),x0,[],[],[],[],lb,ub,@(x) fmincon_con(x));...

matlab非线性规划fmincon函数中目标函数参数传递问题,怎么解?
(1)检查线性约束 通过求解一个线性规划问题来找到一个满足界约束和线性约束的点。i)定义一个目标函数是常值0的线性规划问题、f = zeros(size(x0)); % assumes x0 is the initial point ii)求解这个线性规划问题看是否有一个可行点。xnew = linprog(f,A,b,Aeq,beq,lb,ub);iii)如果有...

相似回答