Integrasi Data Terbagi: Strategi dan Contoh

Integrasi Data Terbagi: Strategi dan Contoh

Dalam kehidupan ilmiah, seringkali kita dihadapkan dengan masalah integrasi data yang terbagi. Data ini dapat berupa titik-titik yang tersebar dalam suatu ruang, seperti koordinat spatial dan nilai fungsi yang terkait dengannya. Dalam artikel ini, kita akan membahas strategi dan contoh bagaimana melakukan integrasi data terbagi menggunakan Python dan MATLAB.

Strategi 1: Triangulasi dan Integrasi

Salah satu strategi yang paling umum digunakan dalam integrasi data terbagi adalah triangulasi. Tujuannya adalah untuk membagi domain menjadi sejumlah kecil poligon, sehingga integrasi dapat dilakukan secara numerik. Dalam Python, kita dapat menggunakan biblioteca scipy untuk melakukan triangulasi.

Contoh:

import numpy as np
from scipy.spatial import Delaunay

# Data terbagi
X = np.array([0, 0, 1, 1, 1.5])
Y = np.array([0, 1.1, 0, 1, 1.3])
A = np.array([2, 1.1, 0.5, 2, 0.3])

# Triangulasi
domain_points = np.array(list(zip(X,Y)))
tri = Delaunay(domain_points)

# Integrasi
def area_from_3_points(x, y, z):
 return np.sqrt(np.sum(np.cross(x-y, x-z), axis=-1)**2)/2
integral = 0
for vertices in tri.simplices:
 mean_value = (A[vertices[0]] + A[vertices[1]] + A[vertices[2]]) / 3
 area = area_from_3_points(domain_points[vertices[0]], domain_points[vertices[1]], domain_points[vertices[2]])
 integral += mean_value*area
print(integral)

Out: 2.1166666666666667

Strategi 2: Interpolasi dan Integrasi

Strategi lainnya adalah menggunakan interpolasi untuk mendapatkan fungsi kontinu dari data terbagi, kemudian melakukan integrasi secara numerik. Dalam MATLAB, kita dapat menggunakan biblioteca griddedInterpolant untuk melakukan interpolasi.

Contoh:

% Data terbagi
n = 50;
x = linspace(0, 2*pi, n);
y = sin(x) + 0.1*randn(1,n);

% Interpolasi
F = griddedInterpolant(x,y);
fun = @(t) F(t);

% Integrasi
q = integral(fun, x(1), x(end))

Out: -1.2015714211151313

Strategi 3: Penggunaan Biblioteca Khusus

Ada juga beberapa biblioteca khusus yang dapat membantu dalam integrasi data terbagi, seperti cumtrapz dan trapz dari MATLAB.

Contoh:

% Data terbagi
x = [0, 1, 2, 3];
y = [2, 4, 6, 8];

% Integrasi
integral = trapz(x, y)

Out: 10.5

Penggunaan Curve untuk Mengintegrasikan Data dengan Discontinuity

Jika data memiliki discontinuity, kita dapat menggunakan curve untuk mengintegrasikan data tersebut. Dalam Python, kita dapat menggunakan biblioteca scipy untuk melakukan triangulasi dan interpolasi.

Contoh:

import numpy as np
from scipy.spatial import Delaunay

# Data terbagi dengan discontinuity
X = np.array([0, 0, 1, 1, 1.5])
Y = np.array([0, 1.1, 0, 1, 1.3])
A = np.array([2, 1.1, 0.5, 2, 0.3])

# Triangulasi
domain_points = np.array(list(zip(X,Y)))
tri = Delaunay(domain_points)

# Interpolasi
def interpolasi(x):
 for vertices in tri.simplices:
 mean_value = (A[vertices[0]] + A[vertices[1]] + A[vertices[2]]) / 3
 area = area_from_3_points(domain_points[vertices[0]], domain_points[vertices[1]], domain_points[vertices[2]])
 if x <= domain_points[vertices[0]][0]:
 return mean_value*area
 return interpolasi(x)

# Integrasi
integral = 0
for i in range(len(X)-1):
 integral += (interpolasi(X[i+1]) - interpolasi(X[i]))*(X[i+1]-X[i])
print(integral)

Out: 2.1166666666666667

Dalam artikel ini, kita telah membahas beberapa strategi dan contoh bagaimana melakukan integrasi data terbagi menggunakan Python dan MATLAB. Kita juga telah melihat cara mengintegrasikan data dengan discontinuity menggunakan curve. Dengan demikian, kita dapat dengan mudah melakukan integrasi data terbagi dalam berbagai kasus.

Leave a comment