泡沫奇诺 2023-08-07 23:10 采纳率: 25%
浏览 11

数学建模Matlab代码出错

数学建模,355ml易拉罐最优模型,用matlab求解,在matlab中代码报错,不知道怎么解决,笨蛋一枚
以下是2个目标函数(其中定义b=0.15mm pi=3.1415 v=355000mm3; )

img

img

针对第二个图
做了如下代码

% 定义常量
b = 0.15;
v = 355000;
pi = 3.1415;

% 目标函数
objective = @(x) b*pi*2*x(3)*(x(4)-x(5)-x(6)+x(1)^2) + b*pi*(x(3)+x(1))*sqrt((x(3)-x(1))^2+x(4)^2) + b*pi*(x(2)+x(3))*sqrt((x(3)-x(2))^2+x(5)^2) + b*pi*22*(x(2)^2-x(6)^2);

% 初始猜测
x0 = [0, 0, 0, 0, 0, 0]; % r1、r2、r、h1、h2、h3的初始值

% 约束条件函数
eq1 = @(x) pi*(x(3)^2+x(1)^2+x(3)*x(1))*x(4) + 3*pi*x(3)^2*(x(4)-x(5)-x(6)) + pi*(x(2)^2+x(3)^2+x(2)*x(3))*x(5) - pi/2*x(6)*(3*x(2)^2+x(6)^2) - 3*v;

ineq1 = @(x) 2*x(3)*x(6)/(x(3)^2+x(6)^2) - 0.866;
ineq2 = @(x) 2*x(3)*x(6)/(x(3)^2+x(6)^2) - 1;

ineq3 = @(x) 2*x(3)/x(4) - 0.618;

eq2 = @(x) x(1) - x(2) - 3;

ineq4 = @(x) x(3) - x(1);
ineq5 = @(x) x(4) - x(5) - x(6);

% 构建约束向量
nonlcon = @(x) [
    eq1(x);
    ineq1(x);
    ineq2(x);
    ineq3(x);
    eq2(x);
    ineq4(x);
    ineq5(x);
];

% 优化
options = optimoptions('fmincon', 'Display', 'iter');
[x, fval] = fmincon(objective, x0, [], [], [], [], [], [], nonlcon, options);

% 显示结果
fprintf('最优变量值:\n');
fprintf('r1: %.5f\n', x(1));
fprintf('r2: %.5f\n', x(2));
fprintf('r: %.5f\n', x(3));
fprintf('h1: %.5f\n', x(4));
fprintf('h2: %.5f\n', x(5));
fprintf('h3: %.5f\n', x(6));
fprintf('最优目标值: %.3f\n', fval);

因为没找到Matlab代码模块,上传的时候用的C语言代码块,
以下是Matlab软件显示的报错原因

等号右侧的输出数目不足,不满足赋值要求。

出错 untitled1>@(x)[eq1(x);ineq1(x);ineq2(x);ineq3(x);eq2(x);ineq4(x);ineq5(x)] (第 26 行)
nonlcon = @(x) [

出错 fmincon (第 655 行)
        [ctmp,ceqtmp] = feval(confcn{3},X,varargin{:});

出错 untitled1 (第 38 行)
[x, fval] = fmincon(objective, x0, [], [], [], [], [], [], nonlcon, options);

原因:
    Failure in initial nonlinear constraint function evaluation. FMINCON cannot continue.

求求解T-T

  • 写回答

2条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-08-08 08:51
    关注

    【以下回答由 GPT 生成】

    问题的关键在于你想要解决的具体错误是什么。根据你提供的代码,我无法确定代码中是否存在问题。请提供更多关于错误的信息,以便我帮助你解决问题。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    评论

报告相同问题?

问题事件

  • 修改了问题 8月8日
  • 创建了问题 8月7日