程序
clear; clc;
fun = @( x ) x( 1 ) .* x( 2 );
A = [];
Aeq = [];
b = [];
beq = [];
lb = [ 6, 8 ];
ub = [ 12, 16 ];
x0 = lb + ( ub - lb ) .* rand( 1, 2 );
[ x, fval, exitflag ] = fmincon( fun, x0, A, b, Aeq, beq, lb, ub, @MyNonCon )
function [ c, ceq ] = MyNonCon( x )
f = @( m ) ( 184900 + 860 .* ( m - 1 ) .* x( 2 ) + ( m - 1 ).^2 .* x( 2 ).^2 ) ./ ...
( 860 .* ( m - 1 ) .* x( 2 ) + ( m - 1 ).^2 .* x( 2 ).^2 )+249600;
eq = sum( f( [ 2 : 1 : x( 1 ) ] ) );
c = 30-double( eq );
ceq = [];
end
是我约束出问题了吗,还是输出不对