| Labfans是一个针对大学生、工程师和科研工作者的技术社区。 | 论坛首页 | 联系我们(Contact Us) | 
![]()  | 
	
| 		
			
			 | 
		#1 | 
| 
			
			 初级会员 
			
			
			
			注册日期: 2008-04-12 
				
				年龄: 83 
				
					帖子: 11
				 
				
				
				声望力: 18 ![]()  | 
	
	
	
		
		
			
			 
			
			一网友编写了一个不能运行的程序,研究后发现有5处错误,经修改后能顺利运行,结果为L=-0.1125。修改后的程序如下: 
		
		
		
		
		
		
		
	e=[111 222 333 444]; e1=[112 222 223]; a=[0.1 0.2 0.3 0.4]; m=[2 3 2]; a1=0.75; f=6;A=0;B=0; for i=1:4; N(i)=(742./e(i))^10; h(i)=N(i)./(f.*3600); A=A+a(i)./h(i); end; for j=1:3; N1(j)=(217./(e1(j)-414)); B=B+100.*m(j)./N1(j); end; L=a1*100/(A+B) 分析错误的根源,最主要的错误在于对几种求和函数的适用范围没有掌握,今总结如下: 1.函数sum(),适用向量、矩阵的求和。如是向量,得到各元素的和,是一个数。如是矩阵,得到各列的和,和数个数等于列数。 2.求级数的和symsum(f,v,a,b).必须给出表达式,变量,初值、终值。不能放在循环中。提问者就是犯了这种错误。 3.利用循环和+=运算,用for、while均可。循环体外必须首先赋初值0。  | 
| 
		 | 
	
	
	
		
		
		
		
			 
		
		
		
		
		
		
		
			
		
		
		
	 |