PDA

查看完整版本 : "一个累积求和的问题",请教高手


spurs001
2008-05-27, 10:17
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;
for i=1:4;
N(i)=(742./e(i))^10;
h(i)=N(i)./(f.*3600);
A=symsun(a(i)./h(i);
end;
for j=1:3;
N1(j)=(217./(e1(j)-414);
B=symsum(100.*m(j)./N1(j));
end;
L=a1*100/(A+B)
运行时总是说symsum有问题,我找不出问题啊,就是这个程序,只要能运行出结果,请帮忙点出错误,帮忙改一下啊

oneday2010
2008-06-08, 22:11
A=symsun(a(i)./h(i);
这个程序行是不是要求:从1到a(i)/h(i)的和呢?
那么应该这样写吧
syms x
symsum(x,0,a(i)/h(i));
a(i)后无点
这两个相除后会取整,再求和的

yemaogong
2008-09-07, 09:50
怀疑你的程序有如下漏洞:
1.第3行少了一个"="号
2.第9行后面少了一个")"号
3.累计和A在for循环中只能用A=A+h(i),当然循环体外应有A=0;
4.求N1(j)的后面也少了一个")"号
5.累计和B在for循环中只能用B=B+h(i),当然循环体外应有B=0;
你改后试试看,应该出结果了。

yemaogong
2008-09-07, 09:57
帮人帮到底吧。改后程序如下:
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)
运行结果为:
L=-0.1125