Matlab:数值向量的定积分

问题描述 投票:0回答:1

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

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

积分的极限是 zmin 和 zmax

我应该计算: [G(z) * z^(7/6)] dz

的 zmin,zmax 之间的积分

我可以用下面的代码解决吗?

For i = zmin:zmax
myresult = G(z(i))*z(i)^(7/6)
end
matlab vector numerical-integration
1个回答
0
投票

(之前写过)

您可以使用数值积分

定义G(z)为函数句柄,待积分函数为 另一个。您可以在我的其他答案中找到示例。


所以你的目标是计算

[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'
    是计算向量点积的方法。
© www.soinside.com 2019 - 2024. All rights reserved.