Labfans是一个针对大学生、工程师和科研工作者的技术社区。 论坛首页 | 联系我们(Contact Us)
MATLAB爱好者论坛-LabFans.com
返回   MATLAB爱好者论坛-LabFans.com > 工程数学软件 > MATLAB论坛
MATLAB论坛 一切MATLAB相关问题在此讨论。
回复
 
主题工具 显示模式
旧 2009-06-08, 20:37   #1
wenroutianshi
初级会员
 
注册日期: 2009-06-08
帖子: 3
声望力: 0
wenroutianshi 正向着好的方向发展
默认 请大家帮我看一下这个程序为什么不执行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)
wenroutianshi 当前离线   回复时引用此帖
旧 2009-06-08, 20:41   #2
barqcf1986
初级会员
 
注册日期: 2009-03-16
年龄: 38
帖子: 8
声望力: 0
barqcf1986 正向着好的方向发展
默认 回复: 请大家帮我看一下这个程序为什么不执行while循环体

是不是一次后就使跳出了循环条件了。你把fun1也附上吧
barqcf1986 当前离线   回复时引用此帖
旧 2009-06-08, 22:42   #3
wenroutianshi
初级会员
 
注册日期: 2009-06-08
帖子: 3
声望力: 0
wenroutianshi 正向着好的方向发展
默认 回复: 请大家帮我看一下这个程序为什么不执行while循环体

您好,这是那个函数function y=fun1(x)
y=x^2-6*x+9
我觉得好像一步也没执行,就算了个初值的。
wenroutianshi 当前离线   回复时引用此帖
旧 2009-06-08, 23:28   #4
TTT_IOU
普通会员
 
注册日期: 2009-02-22
帖子: 91
声望力: 18
TTT_IOU 正向着好的方向发展
默认 回复: 请大家帮我看一下这个程序为什么不执行while循环体

没问题的,循环13次,
y =
3.2948e-006
估计是你的fun1没在当前工作目录下!!!
TTT_IOU 当前离线   回复时引用此帖
旧 2009-06-09, 18:46   #5
wenroutianshi
初级会员
 
注册日期: 2009-06-08
帖子: 3
声望力: 0
wenroutianshi 正向着好的方向发展
默认 回复: 请大家帮我看一下这个程序为什么不执行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
wenroutianshi 当前离线   回复时引用此帖
回复


发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码



所有时间均为北京时间。现在的时间是 09:03


Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.