求大神..黄金分割法求f=sin(x)+cos(2x)的最小值,1<=x<=2.用matlab编程

发布网友 发布时间:2022-04-27 07:40

我来回答

1个回答

热心网友 时间:2023-09-13 22:51

先创建一个函数
function
[F]=f(x)
F=sin(x)+cos(2*x);
在建立一个M文件
clear;
a=1,b=2;
x1=a+0.382*(b-a);
x2=a+0.618*(b-a);
while((b-a)>0.000000000000001)
if(f(x1)<f(x2))
a=a;
b=x2;
x2=x1;
x1=a+b-x2;
elseif(f(x1)>f(x2))
a=x1;
b=b;
x1=x2;
x2=a+b-x1
else(f(x1)==f(x2))
a=x1;
b=x2;
x1=a+0.382*(b-a);
x2=a+0.618*(b-a);
end
end
计算出来接近于0,通过plot函数绘制出该函数的图形也可以看到最小值接近于0,希望对你有帮助

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com