| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
![]()  | 
	
| 		
			
			 | 
		#1 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2008-07-16 
				
				年龄: 43 
				
					帖子: 4
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			我是初学者,刚碰到一个问题,我需要用牛顿迭代法得出从初始值到最后误差为8位小数的最后值。这些我都按理论老老实实的写了,但是不知道什么原因,答案显示有问题。 
		
		
		
		
		
		
		
	比如,我的初始值取得接近精确值,它可能需要10步就得出最后的近似值,那么我能看到所有的10个数据,这说明我的整个程序该是正确的吧。 但是,当我的初始值选得很远离精确值时,它可能就需要30或者更多步来完成,但是答案上却不显示所有的数据,而是每次都只显示了可能的最后一部分数据就没有了。而我需要用全部的数据来进行对比。 我是菜鸟,找了些书,也没提到这种情况怎么办才好。不知道有没有同学碰到过这种情况,帮帮我。  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#2 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2009-01-15 
				
				年龄: 36 
				
					帖子: 15
				 
				
				
				声望力: 17 ![]()  | 
	
	
	
		
		
			
			 
			
			我想是因为初值离根太远,导致不收敛,所以迭代后出错。你在程序中加入一个迭代次数的变量,如果迭代次数超过,那就说明是初值迭代不收敛
		 
		
		
		
		
		
		
		
	 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
| 		
			
			 | 
		#3 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2008-07-16 
				
				年龄: 43 
				
					帖子: 4
				 
				
				
				声望力: 0 ![]()  | 
	
	
	
		
		
			
			 
			
			谢谢上面同学的回复。:lol:  
		
		
		
		
		
		
		
	可能我上面没有写明白,我的程序没有问题,取的初值都是可以保证收敛的。问题是出在答案的显示上,比如这个初值要运行30步才能完成,我能看到第20到30步的数值,也就是说最后的结果还是显示了,但是从最初值到第19步的数值却没显示。 最近发现把计算复杂化,比如 (n,n) Matrix A中,我以前习惯老是用n=100,现在用n=300,那么整个计算量就会相对大很多,整个运行过程也会相对来说慢很多,这时,所需的步骤也很大,但是我却能看到所有的数值了。 不知道是不是因为运行太快的缘故,还是别的原因,继续不解中  
		 | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 | 
![]()  | 
	
	
		
  | 
	
		 | 
			 
			相似的主题
		 | 
	||||
| 主题 | 主题作者 | 版面 | 回复 | 最后发表 | 
| [MATLAB数学相关] 请问这个过程应该怎么模拟 | lonelyrex | MATLAB论坛 | 2 | 2009-04-16 14:57 | 
| [求助]求解方程的问题 | 一个人的旅行 | MATLAB论坛 | 3 | 2009-03-25 16:00 | 
| [求助]求识别水果种类的方法!!! | george19868 | MATLAB论坛 | 2 | 2009-01-09 19:28 | 
| [求助]关于PLS程序主成分的确定问题 | yiouyang | MATLAB论坛 | 0 | 2008-12-17 15:59 |