用ChatGPT求解一维搜索问题

【例22】在长为350cm、宽为260cm的长方形不锈钢板的四角各剪去一个小正方形,做成一个无盖的储水箱,试用ChatGPT生成MATLAB代码确定正方形的边长,使储水箱的容积最大。[大谦MATLAB,dqmatlab点com]

1.ChatGPT提示词

新建ChatGPT会话,在提问文本框中输入下面的提示词:

prompt
你是MATLAB专家。在长为350cm、宽为260cm的长方形不锈钢板的四角各剪去一个小正方形,做成一个无盖的储水箱,试编程用fminbnd函数确定正方形的边长,使储水箱的容积最大。请添加代码注释。

2.代码

根据提示词得到类似下面的代码:

code.matlab
% 定义长方形不锈钢板的长和宽
length_rect = 350; % 长度为350cm
width_rect = 260; % 宽度为260cm
% 定义目标函数,即储水箱的容积
volume_func = @(x) (length_rect - 2*x) * (width_rect - 2*x) * x;
% 定义正方形边长的取值范围
lb = 0; % 下界为0,即正方形边长不小于0
ub = min(length_rect, width_rect) / 2; % 上界为长和宽中较小值的一半
% 使用 fminbnd 函数寻找使得目标函数最大化的正方形边长
optimal_side_length = fminbnd(@(x) -volume_func(x), lb, ub);
% 计算储水箱容积
optimal_volume = volume_func(optimal_side_length);
% 显示结果
disp(['最大容积对应的正方形边长: ', num2str(optimal_side_length)]);
disp(['最大容积: ', num2str(optimal_volume)]);

3.使用代码

在MATLAB中新建一个脚本文件,将上面生成的代码复制进去,保存到D:/Samples/gpt22.m。运行脚本,在MATLAB命令窗口输出计算结果。

code.matlab
>> gpt22
最大容积对应的正方形边长: 49.1997
最大容积: 2000401.152

即当剪掉的正方形的边长为49.1997cm时,水槽的容积最大,为2.0004e+06cm3。