matlab查错误[minX,minY]=fminbnd('cos(3*x)*exp(-(x))',0,
来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/11/09 10:00:56
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))','极大值点','极小值点','根')
为什么画出来的图中极大值点没有出现,而且根只画出了一个呢
而且极大值和极小值点的图示能够使他们不一样么
[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))','极大值点','极小值点','根')
为什么画出来的图中极大值点没有出现,而且根只画出了一个呢
而且极大值和极小值点的图示能够使他们不一样么
原因分析
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极大极小值刚好搞反了,说明一下,我就不改了.
再问: 但是运行的时候出不来呢
再答: fsolve是优化工具箱(Optimization Toolbox)的函数,你可能没装这个工具箱。 直接把fsolve换成fzero就可以了,尽管二者的算法不同,就解决这个问题而言,都是可行的。
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极大极小值刚好搞反了,说明一下,我就不改了.
再问: 但是运行的时候出不来呢
再答: fsolve是优化工具箱(Optimization Toolbox)的函数,你可能没装这个工具箱。 直接把fsolve换成fzero就可以了,尽管二者的算法不同,就解决这个问题而言,都是可行的。
matlab查错误[minX,minY]=fminbnd('cos(3*x)*exp(-(x))',0,
如何用MATLAB画出[x,fval] = fminbnd(@(x) – (3 – 2 * x) ^ 2 * x,0,1
请问Matlab中这个语句y=[exp(-.07*x).*cos(x);exp(.05*x).*cos(x)]';后面的
matlab中为什么y=2*exp(-0.5*x)*cos(4*pi*x)会报错
怎么样用matlab编程求函数y=cos(x)*exp(2*sin(x))-sin(x)*exp(2*cos(x))的周
z =-4*cos(2*exp(-x))*exp(-x)^2-2*sin(2*exp(-x))*exp(-x)要将x=3
x = fminbnd(’humps’,0.3,1)这句话啥意思?MATLAB里的!
3*x^2-exp(x)=0,matlab怎么算,要代码
matlab菜鸟问题>> x=0:.12:1;>> y=(x.^2-3*x+5).*exp(-5*x).*sin(x);
matlab里 *和.*的区别.比如这个式子,y=2*exp(-0.5*x).*cos(4*pi*x).
如何用Matlab计算exp(2x)sin(3x)=2?求x
matlab问题,>> t=0:0.2:3*pi;x=exp(-t).*sin(t);plot(t,x) >> t=0: