matlab中的简单递归系列

时间:2015-09-08 02:34:25

标签: recursion matlab

我试图获得系列的前120个术语的总和:

a(n)=(10 + a(n-1))(1.005)^ n

我尝试了两种方法,但我不知道自己犯了哪些错误。

方法#1:

nval = 1 

mval = zeros(120,1)

for nval=1:120
    if nval <= 120               %counting up from 1 to 120
        if nval == 1              %modifying first term to avoid 0 index
            mval(1) = (10)*(1.005)   
            nval = nval +1;
        else
            mval(nval) = (10+mval(nval-1))*(1.005)^nval;  %Assigning 
            nval = nval +1;
        end

    end
end

导致列向量在顶部为10.05,其余为零。如果省略mval的开头定义为零,我得到与

相同的结果

方法#2:

a(1)=10.05;    %defining first term to avoid 0 index

for n=2:120, a(n)= (10+a(n-1))*(1.005)^n;  end 

导致一些太大的东西。

(a(120)的正确值是~1646.99)

编辑:我的错误和道歉 - 我的系列错了; (1.005)^ n不是n次幂,而只是1.005。使用它,这两种方法都有效。 感谢所有人提供的答案和建议

0 个答案:

没有答案