MATLAB求函数最小值 5
已知y=e-0.1xsin2x-0.5(x+0.1)sinx,在-10≤x≤10区间,求函数的最小值。这是我写的:[x,favl]=fminbnd(@(x)exp(-0....
已知y=e-0.1xsin2x-0.5(x+0.1)sinx,在-10≤x≤10区间,求函数的最小值。
这是我写的:[x,favl]=fminbnd(@(x)exp(-0.1*x)*sin(x)^2-0.5*(x+0.1)*sin(x),-10,10)
x =
2.5148
favl =
-0.4993
然而正确答案最小值在x=8处取得 展开
这是我写的:[x,favl]=fminbnd(@(x)exp(-0.1*x)*sin(x)^2-0.5*(x+0.1)*sin(x),-10,10)
x =
2.5148
favl =
-0.4993
然而正确答案最小值在x=8处取得 展开
2个回答
展开全部
这些函数求得是极值,不是最值,所以求出来有可能就不是最小值,你要提前确定它的解在8附近,你就直接改取值范围
[x,favl]=fminbnd(@(x)exp(-0.1*x)*sin(x)^2-0.5*(x+0.1)*sin(x),7,9)
x =
8.0236
favl =
-3.5680
还有就是可以用分段法来求
xrange=[-10,10];
N=100;
Xrange=linspace(xrange(1),xrange(2),N+1);
x_min=zeros(N,1);
fval_min=zeros(N,1);
for i=1:N
[x_min(i),fval_min(i)]=fminbnd(@(x)exp(-0.1*x)*sin(x)^2-0.5*(x+0.1)*sin(x),Xrange(i),Xrange(i+1));
end
[fval,i]=min(fval_min);
x=x_min(i)
fval
[x,favl]=fminbnd(@(x)exp(-0.1*x)*sin(x)^2-0.5*(x+0.1)*sin(x),7,9)
x =
8.0236
favl =
-3.5680
还有就是可以用分段法来求
xrange=[-10,10];
N=100;
Xrange=linspace(xrange(1),xrange(2),N+1);
x_min=zeros(N,1);
fval_min=zeros(N,1);
for i=1:N
[x_min(i),fval_min(i)]=fminbnd(@(x)exp(-0.1*x)*sin(x)^2-0.5*(x+0.1)*sin(x),Xrange(i),Xrange(i+1));
end
[fval,i]=min(fval_min);
x=x_min(i)
fval
东莞大凡
2024-08-07 广告
2024-08-07 广告
在东莞市大凡光学科技有限公司,我们利用Halcon软件处理机器视觉项目时,会用到自定义标定板以满足特定需求。Halcon支持用户根据实际应用场景自定义标定板形状与标记点。这不仅可以灵活应对不同工作环境,还能提高标定精度。通过调整圆点数量、间...
点击进入详情页
本回答由东莞大凡提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询