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。 |
![]() |
![]() |