| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
![]()  | 
	
| 		
			
			 | 
		#1 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2009-06-08 
				
				
				
					帖子: 3
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			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)  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#2 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2009-03-16 
				
				年龄: 39 
				
					帖子: 8
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			是不是一次后就使跳出了循环条件了。你把fun1也附上吧
		 
		
		
		
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#3 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2009-06-08 
				
				
				
					帖子: 3
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			您好,这是那个函数function y=fun1(x) 
		
		
		
		
		
		
		
	y=x^2-6*x+9 我觉得好像一步也没执行,就算了个初值的。  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#4 | 
| 
			
			 普通会员 
			
			
			
			注册日期: 2009-02-22 
				
				
				
					帖子: 91
				 
				
				
				声望力: 18 ![]()  | 
	
	
	
		
		
			
			 
			
			没问题的,循环13次, 
		
		
		
		
		
		
		
	y = 3.2948e-006 估计是你的fun1没在当前工作目录下!!!  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#5 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2009-06-08 
				
				
				
					帖子: 3
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			非常感谢上面的两位,我仔细看了一下是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  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 |