![]() |
求助,奇怪现象,matlab编程有额外输出的疑问
在matlab窗口输入如下:
syms x; f=x^2-x+2; [x,mf]=min(f,x,-1,3) 其中自定义函数代码如下: function [x,minf]=min(f,var,a1,a2) %f是输入函数 %var是函数自变量 %a1、a2是自变量区间 format long; eps=1e-6; x2=a1+0.618*(a2-a1); f2=subs(f,var,x2); x1=a1+0.382*(a2-a1); f1=subs(f,var,x1); n=29; while n if f1<f2 a2=x2; x2=x1; f2=f1; x1=a1+0.382*(a2-a1); f1=subs(f,var,x1); else if f1==f2 a1=x1; a2=x2; x2=a1+0.618*(a2-a1); f2=subs(f,var,x2); x1=a1+0.382*(a2-a1); f1=subs(f,var,x1); else f1>f2 a1=x1; x1=x2; f1=f2; x2=a1+0.618*(a2-a1); f2=subs(f,var,x2); end end if n==1 break; end n=n-1; end x=x1; minf=x2; format short; 运行无错,得出[x,minf]的结果也没有错。但是更改n的值,从1到28,会发现: n=1时,窗口输出x,minf的值 n=2时,输出ans=1,x和minf的值 n=3时,输出ans=1,x和minf的值 n=4时,输出ans=1,ans=1,x和minf的值 以此类推,每逢n等于偶数时,ans=1的个数就增加一个, 到n=28时,输出了14个ans=1,然后才是x和minf的值 我实在不知道哪里出了问题,怎么会有这种输出,请高人解答~~谢谢 |
所有时间均为北京时间。现在的时间是 14:22。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.