Setiap metode numerik dan statistik yang kita bangun sepanjang Course pada akhirnya bermuara pada beberapa rumus inti — satu baris matematika yang menentukan hasil std, polyfit, atau fft. Chapter ini mengumpulkan seluruh rumus tersebut dalam satu halaman rujukan, ditulis dengan notasi polos (bukan notasi LaTeX) supaya mudah dibaca dari layar mana pun. Setiap rumus dilengkapi dua hal yang praktis: kapan rumus itu dipakai, dan fungsi MATLAB mana yang mengimplementasikannya sehingga kita tidak perlu menulis loop manual.
Aljabar Linear #
| Rumus | Kapan dipakai | Fungsi MATLAB |
|---|---|---|
A*x = b diselesaikan x = A\b | sistem persamaan linear, kuadrat maupun overdetermined | operator \ (mldivide) |
least squares: minimalkan sum((y - X*beta).^2) | regresi banyak variabel, data lebih banyak daripada parameter | X\y, pinv(X)*y |
A*v = lambda*v | nilai eigen dan vektor eigen — stabilitas sistem, dekomposisi | [V, D] = eig(A) |
det(A) ~= 0 matriks nonsingular | cek kebalikan eksis; det = 0 → galat singular | det(A), rank(A) |
norma sqrt(sum(x.^2)) | ukuran panjang vektor, residu regresi | norm(x) |
Dua rumus pertama sering dipakai bergantian: A\b bekerja untuk matriks persegi maupun persegi panjang (MATLAB otomatis memilih least squares untuk sistem overdetermined), sedangkan inv(A)*b hanya berlaku untuk matriks persegi nonsingular — dan lebih lambat serta kurang stabil secara numerik. Aturan praktis Course: hampir selalu tulis A\b.
Metode Numerik #
| Rumus | Kapan dipakai | Fungsi MATLAB |
|---|---|---|
forward difference: (f(x+h) - f(x)) / h | turunan di titik tepi data; galat O(h) | diff(y) ./ diff(x) |
central difference: (f(x+h) - f(x-h)) / (2h) | turunan standar; galat O(h^2) — pilihan default | gradient(y, h) |
trapezoid rule: (h/2) * (y1 + 2*y2 + ... + 2*y_(n-1) + yn) | integral dari data tabel; galat O(h^2) | trapz(x, y) |
Newton step: x_baru = x - f(x)/f'(x) | cari akar dengan konvergensi kuadratik | fzero(f, x0) |
bisection: c = (a+b)/2, pertahankan sisi yang tanda fungsinya berubah | cari akar dengan jaminan bracket; galat maksimum (b-a)/2 | fzero(f, [a b]) |
interpolasi linear: yi = y1 + (y2-y1)*(xi-x1)/(x2-x1) | estimasi nilai di antara titik data | interp1(x, y, xi) |
regresi linear: slope cov(x, y)/var(x) | tren garis lurus pada data | polyfit(x, y, 1) |
Pemilihan h pada beda hingga mengikuti tarik ulur dua galat yang kita bedah di Chapter Numerical Differentiation: galat truncation O(h^2) mengecil saat h mengecil, tetapi galat round-off eps/h membesar — titik manisnya sekitar h = 1e-5 untuk data presisi double. Contoh cepat dua rumus di atas:
x = 0.5; h = 0.1;
ctr = (sin(x+h) - sin(x-h)) / (2*h);
fprintf('central difference cos(0.5): %.7f\n', ctr);
fprintf('nilai eksak : %.7f\n', cos(x));Output yang Dihasilkan:
central difference cos(0.5): 0.8761207
nilai eksak : 0.8775826Selisih 0.0014 pada h = 0.1 konsisten dengan galat O(h^2): memperkecil h sepuluh kali akan memperkecil galat seratus kali.
Statistika #
| Rumus | Kapan dipakai | Fungsi MATLAB |
|---|---|---|
sample std: s = sqrt(sum((x - xbar).^2) / (n-1)) | sebaran sampel; pembagi n-1 (default MATLAB) | std(x) |
standard error: se = s / sqrt(n) | keraguan sekitar mean sampel | std(x)/sqrt(n) |
z-score: z = (x - mu) / sigma | standardisasi nilai ke satuan simpangan baku | zscore (Statistics Toolbox) |
CI mean (sigma diketahui): xbar ± 1.96 * sigma/sqrt(n) | interval kepercayaan 95% | manual, errorbar |
CI proporsi: phat ± 1.96 * sqrt(phat*(1-phat)/n) | survei biner (puas/tidak puas) | manual |
t-statistic satu sampel: t = (xbar - mu) / (s/sqrt(n)) | uji mean terhadap klaim | ttest(x, mu) |
t dua sampel: t = (m1 - m2) / (sp * sqrt(1/n1 + 1/n2)) | uji beda dua mean independen | ttest2(x, y) |
pooled variance: sp = sqrt(((n1-1)*s1^2 + (n2-1)*s2^2) / (n1+n2-2)) | gabungan keraguan dua kelompok | bagian ttest2 |
ANOVA: F = MSB / MSW dengan MSB = SSB/(k-1), MSW = SSW/(N-k) | bandingkan k >= 3 grup sekaligus | anova1(y, group) |
eta squared: SSB / SST | ukuran efek ANOVA (proporsi variasi) | dari struct anova1 |
R^2: 1 - SSE/SST | seberapa baik model menjelaskan data | dari polyfit+polyval |
Pearson r: sum((x-mx).*(y-my)) / sqrt(sum((x-mx).^2) * sum((y-my).^2)) | kekuatan hubungan linear dua variabel | corrcoef(x, y) |
Konstanta 1.96 pada interval kepercayaan memotong 2,5% ekor di tiap sisi distribusi normal standar — untuk taraf kepercayaan lain, konstanta itu diganti (1.645 untuk 90%, 2.576 untuk 99%). Fungsi std, corrcoef, dan polyfit di kolom kanan mengimplementasikan rumus persis seperti tertulis, sehingga hasil manual dan hasil fungsi bawaan selalu bisa saling dicek — pola validasi yang kita ulang berkali-kali di Course.
Sinyal dan Frekuensi #
| Rumus | Kapan dipakai | Fungsi MATLAB |
|---|---|---|
lebar bin DFT: fs / N | resolusi frekuensi spektrum | fs/numel(x) |
frekuensi bin ke-k: f_k = (k-1) * fs / N, k = 1..N | sumbu frekuensi hasil fft | f = fs*(0:N-1)/N |
amplitudo satu sisi: 2 * abs(X_k) / N | membaca amplitudo sinus dari spektrum | manual setelah fft |
teorema Nyquist: fs > 2 * f_maks | mencegah aliasing saat sampling | — (aturan desain) |
gain moving average panjang L: abs(sin(pi*f*L/fs) / (L*sin(pi*f/fs))) | prediksi redaman filter FIR sebelum uji | manual |
Kunci membaca fft: fungsi tersebut mengembalikan N komponen kompleks pada frekuensi 0 sampai (N-1)*fs/N, amplitudonya harus dibagi N, lalu komponen frekuensi positif dikalikan dua karena energi tiap frekuensi terbelah simetris ke sisi negatif — kecuali bin DC (k = 1) dan bin Nyquist yang tidak digandakan.
Pertumbuhan dan Bunga #
| Rumus | Kapan dipakai | Fungsi MATLAB |
|---|---|---|
eksponensial: N(t) = N0 * exp(k*t) | pertumbuhan tanpa hambatan; bunga kontinu | exp |
linearisasi: log(N) = log(N0) + k*t | fit eksponensial lewat regresi linear | polyfit(t, log(N), 1) |
waktu ganda: t_ganda = ln(2) / k | “berapa lama sampai dua kali lipat?” | log(2)/k |
bunga majemuk: A = P * (1 + r/m)^(m*t) | bunga diskrit (bulanan m = 12, dsb.) | manual |
bunga kontinu: A = P * exp(r*t) | limit bunga majemuk; model eksponensial | exp |
logistik: dN/dt = r*N*(1 - N/K) | pertumbuhan berbatas kapasitas K | ode45 |
Dengan laju k = 0.199563 dari chapter Pemodelan Matematika (fit eksponensial data bakteri), waktu ganda populasi adalah log(2)/k = 3.4733 jam — angka yang muncul berulang karena pertumbuhan eksponensial berarti “berlipat dua dalam interval tetap”. Model logistik menggantikan eksponensial justru pada titik itu: saat populasi mendekati K, suku (1 - N/K) memaksa laju menuju nol dan ledakan eksponensial terhenti.
Ringkasan #
Empat tabel rumus ini menutup matematika inti Course: aljabar linear (A\b, least squares, eig), metode numerik (beda hingga, trapezoid, akar persamaan), statistika (sebaran, interval kepercayaan, uji-t, ANOVA, korelasi), sinyal (bin DFT, Nyquist), dan model pertumbuhan (eksponensial, logistik, bunga). Setiap rumus dipasangkan dengan fungsi MATLAB yang mengimplementasikannya — saat hasil fungsi bawaan dan hasil rumus manual berbeda, salah satunya salah, dan selisihnya selalu layak diselidiki.