一个向量对另一个向量的积分

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

我有两个相同大小的向量,我想制作第三个相同大小的向量,但第三个向量的值是积分的。

我在origin中做到了这一点,而且非常简单,但我需要在matlab中做到这一点。我将发布示例

A       B           C(integrated B over A)
0       0           0
0,041   1812,282    37,15178
0,129   2186,023    213,0772
0,25    2318,906    485,62541
0,407   2141,382    835,75801
0,553   1969,284    1135,83663
0,618   1926,069    1262,4356
0,857   2149,071    1749,41483
1,034   2302,972    2143,42064
1,071   2115,559    2225,16346
1,136   2173,948    2364,57244
1,198   2301,871    2503,32283
1,262   975,241     2608,19041
1,343   0           2647,68767

Matlab 迄今为止的工作:

我试过了

C=trapz(B,A)

并得到结果

C =

-2.6481e+03

最后一个数据点没问题,但我需要一个数据向量。请参阅原始集成中的示例。

问题是: 如何将 B 对 A 进行积分并获得积分值向量?

arrays matlab numerical-integration
1个回答
1
投票
C = cumtrapz(A,B)

会的。


data = [
0       0           0
0.041   1812.282    37.15178
0.129   2186.023    213.0772
0.25    2318.906    485.62541
0.407   2141.382    835.75801
0.553   1969.284    1135.83663
0.618   1926.069    1262.4356
0.857   2149.071    1749.41483
1.034   2302.972    2143.42064
1.071   2115.559    2225.16346
1.136   2173.948    2364.57244
1.198   2301.871    2503.32283
1.262   975.241     2608.19041
1.343   0           2647.68767]

A = data(:,1);
B = data(:,2);

C = cumtrapz(A,B)

返回:

C = 
0
37.1517810000000
213.077201000000
485.625405500000
835.758013500000
1135.83663150000
1262.43560400000
1749.41483400000
2143.42063950000
2225.16346300000
2364.57244050000
2503.32282950000
2608.19041350000
2647.68767400000
© www.soinside.com 2019 - 2024. All rights reserved.