matlab查错误[minX,minY]=fminbnd('cos(3*x)*exp(-(x))',0,pi); [maxX,maxY]=fminbnd('cos(3*x)*exp(-(x))',0,pi);theX=fzero('cos(3*x)*exp(-x)',[0,pi]) ezplot('cos(3*x)*exp(-x)',[0 pi]) hold on plot(minX,minY,'r*',
来源:学生作业帮助网 编辑:作业帮 时间:2024/06/18 00:07:24
![matlab查错误[minX,minY]=fminbnd('cos(3*x)*exp(-(x))',0,pi); [maxX,maxY]=fminbnd('cos(3*x)*exp(-(x))',0,pi);theX=fzero('cos(3*x)*exp(-x)',[0,pi]) ezplot('cos(3*x)*exp(-x)',[0 pi]) hold on plot(minX,minY,'r*',](/uploads/image/z/12543390-54-0.jpg?t=matlab%E6%9F%A5%E9%94%99%E8%AF%AF%5BminX%2CminY%5D%3Dfminbnd%28%26%2339%3Bcos%283%2Ax%29%2Aexp%28-%28x%29%29%26%2339%3B%2C0%2Cpi%29%3B+%5BmaxX%2CmaxY%5D%3Dfminbnd%28%26%2339%3Bcos%283%2Ax%29%2Aexp%28-%28x%29%29%26%2339%3B%2C0%2Cpi%29%3BtheX%3Dfzero%28%26%2339%3Bcos%283%2Ax%29%2Aexp%28-x%29%26%2339%3B%2C%5B0%2Cpi%5D%29+ezplot%28%26%2339%3Bcos%283%2Ax%29%2Aexp%28-x%29%26%2339%3B%2C%5B0+pi%5D%29+hold+on+plot%28minX%2CminY%2C%26%2339%3Br%2A%26%2339%3B%2C)
matlab查错误[minX,minY]=fminbnd('cos(3*x)*exp(-(x))',0,pi); [maxX,maxY]=fminbnd('cos(3*x)*exp(-(x))',0,pi);theX=fzero('cos(3*x)*exp(-x)',[0,pi]) ezplot('cos(3*x)*exp(-x)',[0 pi]) hold on plot(minX,minY,'r*',
matlab查错误
[minX,minY]=fminbnd('cos(3*x)*exp(-(x))',0,pi);
[maxX,maxY]=fminbnd('cos(3*x)*exp(-(x))',0,pi);
theX=fzero('cos(3*x)*exp(-x)',[0,pi])
ezplot('cos(3*x)*exp(-x)',[0 pi])
hold on
plot(minX,minY,'r*',maxX,maxY,'r*',theX,0,'gd')
legend('cos(3*x)*exp(-(x))','极大值点','极小值点','根')
为什么画出来的图中极大值点没有出现,而且根只画出了一个呢
而且极大值和极小值点的图示能够使他们不一样么
matlab查错误[minX,minY]=fminbnd('cos(3*x)*exp(-(x))',0,pi); [maxX,maxY]=fminbnd('cos(3*x)*exp(-(x))',0,pi);theX=fzero('cos(3*x)*exp(-x)',[0,pi]) ezplot('cos(3*x)*exp(-x)',[0 pi]) hold on plot(minX,minY,'r*',
原因分析
1、fminbnd用于求极小值;如果求极大值,需要把目标函数取负号,然后得到的结果再反号.
2、fzero只能求出一个零点来,如果求多个,需要多次调用.我这里换用fsolve来求.
参考代码
[minX,minY]=fminbnd('cos(3*x)*exp(-(x))',0,pi);
[maxX,maxY]=fminbnd('-(cos(3*x)*exp(-(x)))',0,pi);
x0=[0.5 1.5 3];
for i=1:length(x0)
theX(i)=fsolve('cos(3*x)*exp(-x)',x0(i));
end
ezplot('cos(3*x)*exp(-x)',[0 pi])
hold on
plot(minX,minY,'rv',maxX,-maxY,'r^',theX,0,'gd')
legend('cos(3*x)*exp(-(x))','极大值点','极小值点','根')
结果
由于原代码的顺序错误,图中legend极大极小值刚好搞反了,说明一下,我就不改了.