Matlab:数值向量的定积分

时间:2014-07-16 12:16:23

标签: matlab vector integration

我正在寻找解决两个向量的定积分,我试着解释一下。

我知道:z数字向量和G(z)数字向量。

积分的极限是zmin和zmax

我应该计算: zmin之间的积分,[G(z)* z ^(7/6)] dz

的zmax

我可以使用以下代码解决吗?

For i = zmin:zmax
myresult = G(z(i))*z(i)^(7/6)
end

1 个答案:

答案 0 :(得分:0)

(之前写过)

  

您可以使用numerical integral

     

将G(z)定义为函数句柄,并将要集成的函数定义为   另一个。您可以在my other answer中找到一个示例。


因此,您的目标是计算[G(z) * z^(7/6)] * dz的总和,其中G(z)z是预先计算的数字向量,dz是一个小的增量值。

dz = (zmax - zmin) / length(G(z));
S = G * z' * dz;

S应该是结果。让我解释。

  • 首先,我先前对G(z)搞砸了(为此道歉)。您已经(部分)评估了要集成的函数,即G(z)z
  • G(z)z是数字数组。数组从整数开始索引,从1开始。因此G(z(i))可能不是有效表达式,因为z(i)不能保证是整数。如果您以这种方式定义G(z) - G(i) = some_function (z(i));,则上述代码才能正常运行。因此,两个数组中相同索引的每个元素都具有有意义的关系。
  • 有几种方法可以评估两个数组(向量)的乘积,生成单值和。 for循环有效,但效率低下。 G * z'是计算vector dot product的方法。