假设我有一个函数f(x) = cos(x)
。我想评估f(x)
的形式g(x) = 1/2*f(0) + sum(1/4*f(a+h*i)) (for i is odd) + sum(3/4*f(a+h*i)) (for i is even except 0 and 10) + 1/2*f(b)
for循环中的函数求和(matlab)
我写下面的代码,但它没有给出总计(1/4*f(a+h*i)(for i is odd)
和总和3/4*f(a+h*i)(for i is even except 0 and 10)
。
a=0
h=0.1571
n=10
b=1.5708
for i = 1: n
simp_int2 = 0;
simp_int3 = 0;
simp_int1 = 1/2*f(0)
if i < n
if rem(i,2)~=0
simp_int2 = simp_int2 + 1/4*f(a+h*i)
end
if rem(i,2)==0
simp_int3 = simp_int3 + 3/4*f(a+h*i)
end
end
simp_int4 = 1/2*f(b)
end
simp_int = simp_int1 + simp_int2 + simp_int3 + simp_int4
我也试过cumsum和symsum。两个都不按我想要的方式工作。谢谢你的帮助!
另外,如果你有量化形式的函数( 'cos(x)'is)你可以使用矢量值作为你的输入,然后求和结果,从而在一行代码中完成这个任务:'1/2 * f(0)+ sum(1/4 * f a + h * [1:2:n]))+ sum(3/4 * f(a + h * [2:2:n-1]))+ 1/2 * f(b)' –