二元函数极值 用matlab求 关于h d的函数 求极值 还要求极值对应的h d的值I=4000 L=11.25 h的定义域在8到12 函数中不取虚数解尽量说明过程 本人是新手d大概是在10到100之间的一个数求最小值 谢谢
来源:学生作业帮助网 编辑:作业帮 时间:2024/07/30 23:39:26
![二元函数极值 用matlab求 关于h d的函数 求极值 还要求极值对应的h d的值I=4000 L=11.25 h的定义域在8到12 函数中不取虚数解尽量说明过程 本人是新手d大概是在10到100之间的一个数求最小值 谢谢](/uploads/image/z/3508025-41-5.jpg?t=%E4%BA%8C%E5%85%83%E5%87%BD%E6%95%B0%E6%9E%81%E5%80%BC+%E7%94%A8matlab%E6%B1%82+%E5%85%B3%E4%BA%8Eh+d%E7%9A%84%E5%87%BD%E6%95%B0+%E6%B1%82%E6%9E%81%E5%80%BC+%E8%BF%98%E8%A6%81%E6%B1%82%E6%9E%81%E5%80%BC%E5%AF%B9%E5%BA%94%E7%9A%84h+d%E7%9A%84%E5%80%BCI%3D4000+L%3D11.25+h%E7%9A%84%E5%AE%9A%E4%B9%89%E5%9F%9F%E5%9C%A88%E5%88%B012+%E5%87%BD%E6%95%B0%E4%B8%AD%E4%B8%8D%E5%8F%96%E8%99%9A%E6%95%B0%E8%A7%A3%E5%B0%BD%E9%87%8F%E8%AF%B4%E6%98%8E%E8%BF%87%E7%A8%8B+%E6%9C%AC%E4%BA%BA%E6%98%AF%E6%96%B0%E6%89%8Bd%E5%A4%A7%E6%A6%82%E6%98%AF%E5%9C%A810%E5%88%B0100%E4%B9%8B%E9%97%B4%E7%9A%84%E4%B8%80%E4%B8%AA%E6%95%B0%E6%B1%82%E6%9C%80%E5%B0%8F%E5%80%BC+%E8%B0%A2%E8%B0%A2)
二元函数极值 用matlab求 关于h d的函数 求极值 还要求极值对应的h d的值I=4000 L=11.25 h的定义域在8到12 函数中不取虚数解尽量说明过程 本人是新手d大概是在10到100之间的一个数求最小值 谢谢
二元函数极值 用matlab求
关于h d的函数 求极值 还要求极值对应的h d的值
I=4000 L=11.25 h的定义域在8到12
函数中不取虚数解
尽量说明过程 本人是新手
d大概是在10到100之间的一个数
求最小值 谢谢
点图片可放大看
能否说一下具体操作
就是输入m文件后怎么操作 直接在命令框里输入吗
稍微解释一下temp fmincon ezcontourf是什么意思 怎么操作
二元函数极值 用matlab求 关于h d的函数 求极值 还要求极值对应的h d的值I=4000 L=11.25 h的定义域在8到12 函数中不取虚数解尽量说明过程 本人是新手d大概是在10到100之间的一个数求最小值 谢谢
看来你根本没学过MATLAB.
首先打开matlab窗口
1°在命令行中输入
edit used_for_test
出来一个m编辑窗口,在m文件中,粘贴下面的内容:
function y=used_for_test(x)
I=4000;
L=11.25;
h=x(1);
d=x(2);
temp11=(d^2/4+L^2+h^2)^(3/2);
temp1=2*I*h/temp11;
temp21=(9*d^2/4+L^2+h^2)^(3/2);
temp2=I*h/temp21;
temp31=(L^2+h^2)^(3/2);
temp3=I*h/temp31;
temp41=(d^2+L^2+h^2)^(3/2);
temp4=2*I*h/temp41;
E=temp1+temp2-temp3-temp4;
y=E;
点击保存
2°回到命令窗口,在命令窗口中,输入如下命令:
[X,y]=fmincon(@(x)used_for_test(x),[10;50],[],[],[],[],[8,10,12,100])
便可以得到极小值,
另外,输入如下命令可以得到全局最小值:
[X,y]=fminsearch(@(x)used_for_test(x),[10;50])
temp就是自己随便取的临时变量.
fmincon是求非线性条件极小值的函数
y是最小值,X是取最小值的坐标点.
[10;50]是坐标的初值,【8,10,12,100】是坐标点的取值范围
ezcontourf是画等值线的一个函数
function y=used_for_test(h,d)
I=4000;
L=11.25;
temp11=(d^2/4+L^2+h^2)^(3/2);
temp1=2*I*h/temp11;
temp21=(9*d^2/4+L^2+h^2)^(3/2);
temp2=I*h/temp21;
temp31=(L^2+h^2)^(3/2);
temp3=I*h/temp31;
temp41=(d^2+L^2+h^2)^(3/2);
temp4=2*I*h/temp41;
E=temp1+temp2-temp3-temp4;
y=E;
在命令窗口中直接输入:
ezcontourf(@(h,d)used_for_test(h,d),[8,12,10,100]),colorbar
figure
ezcontourf(@(h,d)used_for_test(h,d),[8,10,80,100]),colorbar
便可直接从图形上看到最小值在边界点(8,100)上