How can I resolve the "not enough input arguments" error message for the optimization solver?

Hello, I am a graduate student doing extra practice with optimizations outside of the classroom with the MATLAB R2018b version. The problem is a simple classic based around the optimization of a two bar truss system. I created the following objective function:
%x(1) represents height and x(2) represents diameter
function f = objectivefunc(x)
density = 0.3;
thickness = 0.15;
base = 60;
force = 66;
modulus = 3.00E4;
f = density*2*pi*x(2)*thickness*length; %Weight Equation
end
I then created the following constraint function:
function [c, ceg] = Constraintfunc(x)
% nonlinear inequality constraints
density = 0.3;
thickness = 0.15;
base = 60;
force = 66;
length = sqrt((base/2)^2 + x(1).^2);
modulus = 3.00E4;
c = (force*length) / (2*thickness*pi*x(2)*x(1)) - 100;
((force*length) / (2*thickness*pi*x(2)*x(1))) - (pi^2*modulus*(x(2))^2+(thickness^2)) / (8*(length)^2);
(force*length^3) / (2*thickness*pi*x(2)*(x(1))^2*modulus) - 0.25;
%nonlinear equality constraints
ceq = [];
end
I define the starting "x" as [30,3] and specify test upper and lower bounds as [50,10] and [5,1] respectively. Upon trying to use the optimization solver I get the error message "Not enough input arguments." I fixed a previous error where I was trying to pass two variables into the solver and thought that would resolve it, but I am still unfortunately stuck. Any help or clarity would be greatly appreciated.

2 个评论

You need to show us the code where you invoked the solver.
Please show your function call such as
[x,fval] = fmincon(@objectivefunc,x0,A,b,Aeq,beq,lb,ub,@Constraintfunc)
and the complete error message, everything in red, copy-pasted.
Alan Weiss
MATLAB mathematical toolbox documentation

请先登录,再进行评论。

回答(0 个)

类别

帮助中心File Exchange 中查找有关 Get Started with Optimization Toolbox 的更多信息

产品

版本

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by