![]() |
请大家帮我看一下这个程序为什么不执行while循环体
a=1
b=7 while b-a>0.01 a1=a+0.382*(b-a) a2=a+0.618*(b-a) if fun1(a1)<fun1(a2) b=a2 a2=a1 a1=a+0.382*(b-a) else a=a1 a1=a2 a2=a+0.618*(b-a) end x=(b+a)/2 end y=fun1(x) |
回复: 请大家帮我看一下这个程序为什么不执行while循环体
是不是一次后就使跳出了循环条件了。你把fun1也附上吧
|
回复: 请大家帮我看一下这个程序为什么不执行while循环体
您好,这是那个函数function y=fun1(x)
y=x^2-6*x+9 我觉得好像一步也没执行,就算了个初值的。 |
回复: 请大家帮我看一下这个程序为什么不执行while循环体
没问题的,循环13次,
y = 3.2948e-006 估计是你的fun1没在当前工作目录下!!! |
回复: 请大家帮我看一下这个程序为什么不执行while循环体
非常感谢上面的两位,我仔细看了一下是while 后面没加括号。大家再帮我看一下这个程序为什么还是出执行while循环体呢,
clc clear a0=0.2 b0=1 a1=a0 a3=b0 a2=0.6 c1=(fun2(a3)-fun2(a1))/(a3-a1) c2=((fun2(a2)-fun2(a1))/(a2-a1)-c1)/(a2-a3) a=1/2*(a1+a3-c1/c2) while (abs(a-a2))>0.01 if a>a2 if fun2(a)<fun2(a2) a3=a else a1=a2 a2=a end else if fun2(a)<fun2(a2) a3=a2 a2=a else a1=a end end c1=(fun2(a3)-fun2(a1))/(a3-a1) c2=((fun2(a2)-fun2(a1))/(a2-a1)-c1)/(a2-a3) a=1/2*(a1+a3-c1/c2) end x=a 函数体是: function y=fun2(x) y=x+20/x |
所有时间均为北京时间。现在的时间是 11:12。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.