如何评估不同值的以下积分?

时间:2016-07-19 14:57:15

标签: matlab numerical-methods numerical-integration

我想用被积函数计算以下定积分如下: J A(u)B(u),将下限设为0,将上限设为T。此处J是行向量[1 1 1]A(u)是方阵,B(u)是另一列向量。例如,A(u)采用以下格式diag([f_1(u) f_2(u) f_3(u)]) A diag([f_1(u) f_2(u) f_3(u)])B(u)是一个列向量,说[g_1(u);g_2(u);g_3(u)]'

我想要的是当我将T输入为矢量时,比如[1:1:100],我可以得到100个定积分值。有什么好方法可以解决这些问题吗?为简单起见,f_1f_2f_3g_1g_2g_3可视为分段常量函数。

1 个答案:

答案 0 :(得分:0)

Matlab有多种方法可以用数值方法评估定积分:

所有这些技术都是进行正交积分的具体方法。一些适用于振荡积分,一些适用于无限极限等。我通常在决定哪一个最适合给定问题之前尝试所有这些。

将集成J * A(u) * B(u)作为函数实现后,可以使用该函数句柄和限制调用任何这些正交函数,以获得定积分。

然后,一旦你有一个单个定积分的表达式,你就可以使用arrayfun作为@EBH来评估范围上限的定积分。

如果您指定了f_1等等,我们可以帮您编写一些优雅的代码来执行此操作。