matlab最大化函数,求助,最大化一个函数

谢谢各位,终于调试出来了,可是却出现下面的警告了....

Warning: Trust-region-reflective method does not currently solve this type of problem,

using active-set (line search) instead.

> In fmincon at 422

In MaxR at 5

Optimization terminated: first-order optimality measure less than options.TolFun

and maximum constraint violation is less than options.TolCon.

No active inequalities.

W =

0.1429    0.1429    0.1429    0.1429    0.1429    0.1429    0.1429

算出来的weight怎么是一样的...

这个是function:

function f=Rsquare(W)

GX=[0.000962399130776210,0.000350064522473660,0.000103800673864978,0.000777638315620633,0.000448463306219591,0.000447493172105510,0.000235369828884265;0.000350064522473660,0.000288729482029933,2.85557927940941e-05,0.000322442624420951,0.000259653098783394,0.000262234399226072,0.000126188573217356;0.000103800673864978,2.85557927940941e-05,0.000990934740141339,0.000285757218956752,0.000312438308883034,0.000289760443782061,0.000532726512474590;0.000777638315620633,0.000322442624420951,0.000285757218956752,0.00108798111602739,0.000505749857087467,0.000498875033836279,0.000363361706487174;0.000448463306219591,0.000259653098783394,0.000312438308883034,0.000505749857087467,0.000909923614464120,0.000796792652159657,0.000731952738728617;0.000447493172105510,0.000262234399226072,0.000289760443782061,0.000498875033836279,0.000796792652159657,0.000968783410757642,0.000742100618310187;0.000235369828884265,0.000126188573217356,0.000532726512474590,0.000363361706487174,0.000731952738728617,0.000742100618310187,0.000908695711462052;];

GY=[0.000962399130776210,0.000350064522473660,0.000103800673864978,0.000777638315620633,0.000448463306219591,0.000447493172105510,0.000235369828884265;0.000350064522473660,0.000288729482029933,2.85557927940941e-05,0.000322442624420951,0.000259653098783394,0.000262234399226072,0.000126188573217356;0.000103800673864978,2.85557927940941e-05,0.000990934740141339,0.000285757218956752,0.000312438308883034,0.000289760443782061,0.000532726512474590;0.000777638315620633,0.000322442624420951,0.000285757218956752,0.00108798111602739,0.000505749857087467,0.000498875033836279,0.000363361706487174;0.000448463306219591,0.000259653098783394,0.000312438308883034,0.000505749857087467,0.000909923614464120,0.000796792652159657,0.000731952738728617;0.000447493172105510,0.000262234399226072,0.000289760443782061,0.000498875033836279,0.000796792652159657,0.000968783410757642,0.000742100618310187;0.000235369828884265,0.000126188573217356,0.000532726512474590,0.000363361706487174,0.000731952738728617,0.000742100618310187,0.000908695711462052;];

f=-(W*GX*W')/(W*GY*W');

这个是优化:

x0=ones(1,7)*0.25;

lb=-ones(1,7);

ub=ones(1,7);

aeq=ones(1,7);

W=fmincon('Rsquare',x0,[],[],aeq,1,lb,ub)

不知道问题出在哪里了,看那警告说是约束不管用?

MATLAB中,利润最大化问题通常可以通过数学建模和优化工具箱来解决。目标函数的利润最大化问题是指在一定的约束条件下,通过调整决策变量使得利润函数达到最大值的问题。这可以通过MATLAB的优化函数来实现。 一个基本的利润最大化问题可以表示为: \[ \text{Maximize} \quad P(x) = c^T x - f(x) \] 其中,\( P(x) \) 是利润函数,\( c^T \) 是产品价格向量,\( x \) 是产量向量,\( f(x) \) 是成本函数。 在MATLAB中,可以使用`fmincon`函数来求解有约束的非线性优化问题,或者使用`linprog`函数来求解线性规划问题。以下是一个简单的步骤说明: 1. 定义目标函数:根据实际情况定义利润函数,这可以是一个线性函数或非线性函数。 2. 定义约束条件:包括等式约束和不等式约束。这些可以是生产资源的限制、市场需求限制等。 3. 设置优化选项:选择合适的算法和设置求解器的参数。 4. 调用优化函数:使用`fmincon`或`linprog`等函数调用优化器进行求解。 下面是一个MATLAB代码示例: ```matlab % 定义目标函数 function p = profit(x) % 假设利润函数为线性,c为价格,x为产量 c = [20; 15]; % 假设有两种产品 p = c' * x; % 利润函数 end % 定义非线性约束函数(如果有) function [c, ceq] = constraints(x) c = []; % 不等式约束 ceq = []; % 等式约束 end % 设置优化选项(如果需要) options = optimoptions('fmincon','Algorithm','interior-point'); % 初始猜测值 x0 = [0; 0]; % 定义变量的上下界(如果有) lb = [0; 0]; % 产量下界 ub = [Inf; Inf]; % 产量上界 % 定义线性等式和不等式约束 A = []; b = []; Aeq = []; beq = []; lb = [0; 0]; % 产量下界 ub = [100; 100]; % 产量上界,假设最大产量限制为100单位 % 调用fmincon求解 [x, fval] = fmincon(@profit, x0, A, b, Aeq, beq, lb, ub, @constraints, options); % 输出结果 disp('最优产量:'); disp(x); disp('最大利润:'); disp(-fval); % 因为fmincon求的是最小值,所以取负号 ``` 在上述代码中,`profit`是目标函数,`constraints`是约束函数,`fmincon`是用来求解非线性约束优化问题的函数。需要注意的是,实际问题中利润函数和约束条件可能更为复杂,需要根据实际情况进行编写。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值