我正在尝试在MATLAB中编写一个脚本,它使用单个for循环计算并显示下面屏幕截图中显示的系列的前5个术语(我不知道如何在这里输入方程式和特殊字符)。我是MATLAB的新手,问题是让我失望,因为我也应该在不使用prod
或sum
或factorial
命令或类似命令的情况下提出解决方案。真的很感激一个很好的详细解答,有一个问题的模型答案,可能使用不同的值,所以我可以自己解决实际的问题。
答案 0 :(得分:0)
使用单个for
循环,您可以单独显示和计算这些术语,并使用累加器变量来获得总和,如下所示:
function accumulator = partial_sums(x, iters)
accumulator = 0; % sum of the terms
fact_part = 1; % factorial of the current term
for n = 1:iters
fact_part = fact_part * (n + 1) * (n + 2);
term = ((-1) ^ n) * (4 * n) * (x ^ (2 * n)) / fact_part;
fprintf('Term n = %i is %f.\n', n, term);
accumulator = accumulator + term;
end
end
此函数接受部分和系列中使用的变量x
的值,以及要运行的迭代次数(iters
)(也就是要计算的术语)。
用于存储当前阶乘的fact_part
变量,由于factorial
内置是非法的,因此我随每个循环增加,因为使用另一个可用于计算阶乘的循环方式。
然后,该函数计算每个循环的当前term
,将其显示在下一行(根据请求),并将其添加到accumulator
变量。