【matlab查错误[minX,minY]=fminbnd('cos(3*x)*exp】
答案:2 悬赏:40 手机版
解决时间 2021-02-14 09:22
- 提问者网友:趣果有间
- 2021-02-14 05:07
【matlab查错误[minX,minY]=fminbnd('cos(3*x)*exp】
最佳答案
- 五星知识达人网友:纵马山川剑自提
- 2021-02-14 05:14
原因分析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));endezplot('cos(3*x)*exp(-x)',[0 pi])hold onplot(minX,minY,'rv',maxX,-maxY,'r^',theX,0,'gd')legend('cos(3*x)*exp(-(x))','极大值点','极小值点','根') 结果由于原代码的顺序错误,图中legend极大极小值刚好搞反了,说明一下,我就不改了. 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)',(图2)
全部回答
- 1楼网友:十年萤火照君眠
- 2021-02-14 05:22
对的,就是这个意思
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯