Dalam beberapa kasus, kita perlu menghitung persamaan yang mewakili data tiga dimensi. Salah satu contoh adalah mencari persamaan yang memuaskan untuk data terbatas yang diketahui. Dalam artikel ini, kita akan membahas bagaimana cara menghitung persamaan dari data tiga dimensi dan membuat kontur dari bentuk kuadratik.
Menghitung Persamaan dari Data Tiga Dimensi
Misalnya, kita memiliki tiga titik data (N = 3). Gradient untuk garis yang paling sesuai dapat diperoleh dengan menggunakan rumus berikut:
m = \frac{(N × xy_{sum}) – (x_{sum} × y_{sum})}{(N × x^2_{sum}) – (x_{sum} × x_{sum})}
Substitusi nilai N, x, dan y, kita dapatkan:
m = 0.968
Intercept untuk garis yang paling sesuai dapat diperoleh dengan menggunakan rumus berikut:
c = \frac{(x^2_{sum} × y_{sum} ) – (x_{sum} × xy_{sum})}{(N × x^2_{sum}) – (x_{sum} × x_{sum})}
Substitusi nilai N, x, dan y, kita dapatkan:
c = -1.82
Persamaan yang paling sesuai adalah sebagai berikut:
y = 0.968x – 1.82
Menghitung Persamaan dari Data Tiga Dimensi dengan MATLAB
Dalam contoh lain, kita memiliki data tiga dimensi yang dapat diperoleh menggunakan kode MATLAB sebagai berikut:
Eq = @(x,y) x.y.(y>=0 & y<3) + 2*x.*y.*(y>=3 & y<5) + 3*x.*y.*(y>=5 & y<=10);
x = 0:10;
y = 0:10;
[X,Y] = meshgrid(x,y);
Z = Eq(X,Y);
Dalam kode di atas, kita memiliki fungsi Eq
yang menghitung nilai Z untuk setiap titik data (x, y). Kemudian, kita dapat memodelkan data dengan menggunakan alat curved fitting tool. Dari hasil modeling, kita dapatkan persamaan polynomial sebagai berikut:
f(x,y) = p00 + p10x + p01y + p20x^2 + p11xy + p02y^2
Nilai koefisien dapat diperoleh dengan menggunakan alat curved fitting tool.
Membuat Kontur dari Bentuk Kuadratik
Untuk membuat kontur dari bentuk kuadratik, kita dapat menggunakan library MATLAB sebagai berikut:
f = @(x,y) p00 + p10x + p01y + p20x.^2 + p11x.y + p02y.^2;
Z2 = f(X,Y);
Kemudian, kita dapat membuat plot 3D yang menunjukkan data asli dan data yang diproksikan.
Menghitung Kontur dari Bentuk Kuadratik dengan Python
Dalam contoh lain, kita memiliki data tiga dimensi yang dapat diperoleh menggunakan library Python sebagai berikut:
A = np.array([[4,3], [3,7]])
b = np.array([3,-7])
u = np.linspace(-4,4,100)
x, y = np.meshgrid(u,u)
Dalam kode di atas, kita memiliki transformasi matrix A dan b. Kemudian, kita dapat definisikan fungsi f(x) sebagai berikut:
def f(x):
return np.dot(np.dot(x.T,A),x) – np.dot(b,x)
Kemudian, kita dapat membuat kontur dari bentuk kuadratik dengan menggunakan library Python sebagai berikut:
plt.contour(x, y, f(x[0:2,:]))
Jika plot tersebut tidak memenuhi kebutuhan, kita dapat menggunakan plot 3D lainnya, seperti plot scatter.
Referensi
- MATLAB Answers: Generate an equation from a 3d surface
- Python documentation: matplotlib.pyplot.contour
- Python documentation: numpy.meshgrid