Matlab의 일부 이산 데이터 포인트에서 함수의 적분 값을 계산해야합니다. 각 점의 절대 좌표는 다음과 같습니다. x = [1,2.65,3.25,3.33,15.65] y = [10,31,15, -6,1] trapz(x,y)
함수를 사용하려고했지만 x가 반드시 필요합니다. 데이터 포인트의 x 좌표가 아니라 데이터 포인트 사이의 간격입니다.Matlab의 이산 데이터 포인트에서의 적분
이러한 통합을 계산하는 가장 쉬운 방법은 무엇입니까?
Matlab의 일부 이산 데이터 포인트에서 함수의 적분 값을 계산해야합니다. 각 점의 절대 좌표는 다음과 같습니다. x = [1,2.65,3.25,3.33,15.65] y = [10,31,15, -6,1] trapz(x,y)
함수를 사용하려고했지만 x가 반드시 필요합니다. 데이터 포인트의 x 좌표가 아니라 데이터 포인트 사이의 간격입니다.Matlab의 이산 데이터 포인트에서의 적분
이러한 통합을 계산하는 가장 쉬운 방법은 무엇입니까?
integral
으로 1D에서 옵션으로 웨이 포인트를 지정할 수 있습니다. 2D 통합을 위해 integral2
을 사용하면 불가능 해 보입니다.
또한 통합 점의 2D 사각형 격자가있는 것 같습니다.
그 경우에는 평균 간격 길이 (diff
통해)에 따라 가중치를 계산 한 다음 합계하십시오. 통합 그리드가 고정되어 있으므로 수치 적분의 정밀도는 제어 할 수 없으며 통합 할 함수에 따라 달라집니다.
% get grid
x = [1, 3, 7, 15]';
y = [3, 6, 8];
[xi, yi] = ndgrid(x, y);
% get weights
h = diff(x, [], 1);
wx = ([h; 1] + [1; h])/2;
h = diff(y, [], 2);
wy = ([h, 1] + [1, h])/2;
w = wx * wy;
% calculate function
f = func(xi, yi);
% integration is weighted summation
int = sum(f(:) .* w(:));
테두리는 신중하게 처리해야합니다. 또한 좌표 목록을 정렬해야합니다.