Anda di halaman 1dari 16

Metode Elemen Hingga (Finite Element Method, FEM) adalah suatu metode numerik dengan tujuan memperoleh pemecahan

pendekatan dari suatu persamaan diferensial parsial ( Partial Differential Equation, PDE). Meskipun cikal bakal teori FEM sudah ada sejak tahun 1940-an, baru pada tahun 1970an metode ini dirumuskan secara formal. Pada awalnya metode ini digunakan dibidang teknik penerbangan untuk perhitungan kekuatan bangun-raga ( structure) pesawat pada industri pesawat terbang. Tetapi dewasa ini FEM telah diterapkan dalam berbagai persoalan teknik: seperti struktur, dinamika fluida, perpindahan panas, akustik, maupun elektromagnetik.

Profesor C. Pozrikidis

Sampul Buku C. Pozrikidis

Pada saat ini tentu banyak sekali buku mengenai FEM yang ada di pasaran. Buku yang tepat bagi pemula yang ingin menguasai dasar teori, algoritma dan pemrograman FEM, adalah buku yang memaparkan dasar teori secara ringkas, yang langsung di sertai dengan algoritma dan contoh pemrogramannya. Saya sudah pernah menjumpai beberapa buku FEM yang sebenarnya bagus pada pemaparan teori dan algoritma, tetapi ada sedikit kekurangannya: para pengarang buku tersebut cenderung terlalu bersemangat melengkapi bukunya dengan sebuah paket program FEM yang lengkap, siap-pakai dan multi-guna yang source-code nya dilampirkan di bagian akhir. Program semacam ini akan cenderung besar ukurannya sehingga dokumentasi source-code nya bisa memakan puluhan halaman, tidak mudah untuk dibaca dan dimengerti bagi pemula. Padahal seharusnya program yang menyertai uraian sebuah buku mengenai pemrograman tidak harus lengkap dan siap-pakai, yang penting justeru berukuran kecil dan bersifat modular sesuai dengan tahapan pembahasan pada bab-bab buku tersebut. Dengan kata lain, akan lebih baik apabila buku tersebut memulai pembahasan dari persoalan yang paling sederhana kemudian secara bertahap menuju ke persoalan yang lebih rumpin, di mana pada setiap bab disertai dengan modul program yang khusus memperjelas contoh persoalan pada bab tersebut. Dengan demikian, program yang disajikan secara modular seperti ini menjadi lebih ringkas dan lebih mudah dipahami pembaca. Pembaca dapat mencoba modul-modul program dari setiap bab secara berturutan. Buku Metode Elemen Hingga Finite and Spectral Element Methods using MATLAB dari C. Pozrikidis, terbitan tahun 2005 termasuk jenis buku seperti ini. Pada buku ini, profesor bidang Mekanika Fluida dan Komputasi Universitas California, San Diego menyertai pembahasan teori dan algoritma setiap bab dengan modul program Matlab yang pendek dan langsung bisa dijalankan. Uraian mengenai buku ini

dapat dibaca pada bagian kata pengantar . Kumpulan modul program Matlab yang digunakan pada setiap bab buku tersebut dapat di unduh dari halamanpustaka program Matlab dari pihak pengarang/penerbit. Source code program Matlab yang digunakan pada contoh Bab I buku di atas disajikandi bagian lain pada blog ini. One Response

Program FEM 1-matra (bahasa C)Thursday, Apr 16 2009


Metode Elemen Hingga (FEM) FEM, hantaran panas, heat transfer, metod numerik, metode elemen hingga bahasa C/C++ commonemitter 3:11 pm

Program yang tercantum di bawah ini adalah versi bahasa C/C++ , hasil penerjemahan dari program Metode Elemen Hinggga (FEM) versi Matlab yang diuraikan pada buku C. Pozrikidis, Introduction to Finite Element and Spectral Element Method , 2005, Bab I, yang telah dipaparkan pada tulisan sebelumnya di blog ini. Program ini juga untuk memecahkan contoh persoalan hantaran panas 1-matra. Gambar di bawah menampilkan hasil perhitungan suhu terhadap jarak, dibandingkan dengan hasil perhitungan program Matlab tersebut. Program C/C++ ini dibuat dan dijalankan menggunakan compiler Bloodshed DEV-C++ yang bisa diperoleh tanpa biaya dari Internet.

#include <cstdlib> #include <iostream> #include <cmath> ///////////////////////////////////////////////////////////////////// // R A S U K - 01 // // Uraian : Program Metode Elemen Hingga (FEM) 1M // Persoalan : Hantaran Panas 1-matra, keadaan mantap // // Hasil penerjemahan program FEM Matlab ke C/C++ di // buku C. Pozrikidis, Introduction to Finite Element // and Spectral Element Method,, 2005 Bab I // // Ihsan Hariadi, Duisburg, April 2009 //////////////////////////////////////////////////////////////////// using namespace std;//void input_vector(float a1[5][5], float b1[5]); //==================================================================== ===== // Deklarasi 4 buah fungsi: // => (1) mesh_generation : membuat mesh 1-matra dgn ratio tertentu

// => (2) matrix_assembly : menyusun matriks global sistem persamaan linier // => (3) solve_tridiagonal : memecahkan persamaan linier dgn matriks tridiagonal // => (4) display_results : menampilkan hasil akhir perhitungan, Temp (x) //==================================================================== ===== void mesh_generation (float x1,float x2,float ratio,float he[20],int NE); void matrix_assembly (float ke,float q0,float fL,float he[20],float se[21], float at[20],float bt[20],float ct[20],float bb[20],int NE); void solve_tridiagonal (float fL,float at[20],float bt[20],float ct[20],float bb[20],float Temp[20],int NE); void display_results (float Temp[20],int NE); // ======================== // Program Utama (Main) // ======================== int main(int argc, char *argv[]) { float at[20],bt[20], ct[20], bb[20]; float xe[20], he[20], se[21], Temp[20];

int NE = 20;

// input data float ke=1.0, q0=-1.0, fL=0.2; // medium properties & BCs float L=1.0, ratio=2.0; // meshing parameters mesh_generation (0, L, ratio, he, NE); // sumber panas berbentuk Gaussian float denom1 = 0.25 * (L * L); for (int i=0; i < NE+1; i++) { xe[i] = i * he[i]; float nom1 = 5.0 * (xe[i] * xe[i]); float term = nom1/denom1; se[i] = 10.0*exp(-term); } matrix_assembly (ke, q0, fL, he, se, at, bt, ct, bb, NE); solve_tridiagonal (fL, at, bt, ct, bb, Temp, NE); display_results (Temp, NE); system(PAUSE); return EXIT_SUCCESS; }

// ======================= // Pembuatan Mesh 1 matra // ======================= void mesh_generation (float x1,float x2,float ratio,float he[20],int NE) { for (int i=0; i < NE; i++) { he[i] = (x2-x1)/NE; } } // ===================================== // Penyusunan Matriks Sistem (Assembly) // ===================================== void matrix_assembly (float ke, float q0, float fL, float he[20], float se[21], float at[20], float bt[20], float ct[20], float bb[20], int NE) {

float A11, A12, A21, A22, B11, B12, B21, B22; // nilai awal elemen for (int i = 0; i < NE; i++) { at[i] = 0.0; bt[i] = 0.0; ct[i] = 0.0; bb[i] = 0.0; } bb[0] = q0/ke; // Penyusunan elemen-demi-elemen int NE1 = NE-1; for (int i=0; i < NE1; i++) { A11 = 1/he[i]; A21 = A12; A12 = -A11; A22 = A11;

B11 = he[i]/3.0; B12 = 0.5*B11; B21 = B12; B22 = B11; at[i] = at[i] + A11;

bt[i] = bt[i] + A12; ct[i+1] = ct[i+1] + A21; at[i+1] = at[i+1] + A22; bb[i] = bb[i] + (B11*se[i] + B12*se[i+1])/ke; bb[i+1] = bb[i+1] + (B21*se[i] + B22*se[i+1])/ke; } // elemen yang terakhir A11 = 1.0/he[NE1]; A12 = -A11; B11 = he[NE1]/3.0; B12 = 0.5*B11; at[NE1] = at[NE1] + A11; bb[NE1] = bb[NE1] + (B11*se[NE1] + B12*se[NE1+1]) /ke A12*fL; }
// ============================================ // Pemecahan Persamaan Linier Tridiagonal // ============================================ void solve_tridiagonal (float fL,float at[20],float bt[20],float ct[20],float bb[20],float Temp[20],int NE ) { float d[20], y[20], den;

int NE1 = NE-1; // Ubah tridiagonal -> bidiagonal d[0] = bt[0]/at[0]; y[0] = bb[0]/at[0]; for (int i = 0; i < NE1; i++) { int i1 = i+1; den = at[i1]-ct[i1]*d[i]; d[i1] = bt[i1]/den; y[i1] = (bb[i1]-ct[i1]*y[i])/den; } // Substitusi mundur Temp[NE1] = y[NE1]; int NE2 = NE1-1; for (int i=0; i < NE1; i++) { int i2 = NE2 i; Temp[i2]= y[i2]-d[i2]*Temp[i2+1]; }

Temp[NE] = fL; }
// ================= // Penampilan Hasil // ================= void display_results (float Temp[20],int NE) { for (int i=0; i < NE+1; i++) { cout << Temp[" << i << "] = << Temp[i] << endl; } }

Perbandingan hasil Program FEM versi C/C++ dan versi Matlab

Leave a Response

Program FEM 1-matra (Matlab)Thursday, Apr 9 2009


Metode Elemen Hingga (FEM) difusi, FEM, finite element method, hantaran panas, matlab,metode elemen hingga commonemitter 4:12 pm

Di bawah ini adalah program FEM Matlab untuk persoalan hantaran panas 1 matra (1-D). Ini diambil dari kumpulan pustaka program Matlab yang digunakan pada bukuIntroduction to Finite and Spectral Element Method, tulisan C. Pozrikidis, profesor bidang Mekanika Fluida dan Komputasi, Universitas California, San Diego. Program yang tercantum dibawah ini adalah contoh yang digunakan pada bab I buku di atas, untuk persoalan hantaran panas 1-matra (1D) dalam keadaan waktu mantap (steadystate). Versi terjemahan dari program Matlab ke bahasa C/C++ sudah saya buat dan saya sajikan di bagian lain blog ini. Keuntungan menggunakan program C/C++ adalah karena compiler-nya bisa diperoleh dari Internet tanpa beaya. Keuntungan lain, jika akan dibuat program FEM yang ukuran persoalannya besar, melibatkan ribuan, puluhan ribu, hingga ratusan ribu titik simpul, program C/C++ akan menghasilkan piranti lunak yang lebih cepat eksekusinya.

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % CODE sdl % % Code for steady one-dimensional diffusion % with linear elements %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %============= % input data %============= L=1.0; k=1.0; q0=-1.0; fL=0.2; % heat conduction parameters ne=20; ratio=2.0; % meshing parameters %================= % grid generation %================= xe = elm_line1 (0,L,ne,ratio); %==================== % specify the source %==================== for i=1:ne+1 s(i) = 10.0*exp(-5.0*xe(i)^2/L^2); end %=================== % compact assembly %=================== [at,bt,ct,b] = sdl_sys (ne,xe,q0,fL,k,s); %==============

% linear solver %============== f = thomas (ne,at,bt,ct,b);f(ne+1) = fL; %========= % plot %========= plot(xe, f,-o); xlabel(x,'fontsize,15); ylabel(f,'fontsize,15); set(gca,fontsize,15) %======== % done %========

function xe = elm_line1(x1,x2,n,ratio); %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Unsymmetrical discretization of a line segment % into a graded mesh of n elements % subtended between the left end-point x1 % and the right end-point x2 % % The variable ratio is the ratio % of the length of the last % element to the length of the first element. % % xe: element end-nodes %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %============ % one element %============ if(n==1) xe(1) = x1; xe(2) = x2; return; end %=============== % many elements %===============

if(ratio==1) alpha = 1.0; factor = 1.0/n; else texp = 1/(n-1); alpha = ratio^texp; factor = (1.0-alpha)/(1.0-alpha^n); enddeltax=(x2-x1)*factor; % length of the first elementxe(1)=x1; % first pointfor i=2:n+1 xe(i) = xe(i-1)+deltax; deltax = deltax*alpha; end %======= % done %======= return;

function [at,bt,ct,b] = sdl_sys(ne,xe,q0,fL,k,s) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Compact assembly of the tridiagonal linear system % for one-dimensional steady diffusion % with linear elements (sdl) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%=========== % element size %=========== for l=1:ne h(l) = xe(l+1)-xe(l); end %=================================== % initialize the tridiagonal matrix %=================================== at = zeros(ne,1); bt = zeros(ne,1); ct = zeros(ne,1); %=============================== % initialize the right-hand side

%=============================== b = zeros(ne,1); b(1) = q0/k; %================================== % loop over the first ne-1 elements %================================== for l=1:ne-1A11 = 1/h(l); A12 =-A11; A21 = A12; A22 = A11;B11 = h(l)/3.0; B12 = 0.5*B11; B21 = B12; B22 = B11;at(l) = at(l) + A11; bt(l) = bt(l) + A12;ct(l+1) = ct(l+1) + A21; at(l+1) = at(l+1) + A22;b(l) = b(l) + (B11*s(l) + B12*s(l+1))/k; b(l+1) = b(l+1) + (B21*s(l) + B22*s(l+1))/k; end %============================ % the last element is special %============================ A11 = 1.0/h(ne); A12 =-A11; B11 = h(ne)/3.0; B12 = 0.5*B11; at(ne) = at(ne) + A11; b(ne) = b(ne) + (B11*s(ne) + B12*s(ne+1)) /k A12*fL; %====== % done %====== return;

function x = thomas (n,a,b,c,s) %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% % Thomas algorithm for a tridiagonal system % % n: system size

% a,b,c: diagonal, superdiagonal, % and subdiagonal elements % s: right-hand side %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

%=========== % prepare %=========== na = n-1; %============================== % reduction to upper bidiagonal %============================== d(1) = b(1)/a(1); y(1) = s(1)/a(1);for i=1:na i1 = i+1; den = a(i1)-c(i1)*d(i); d(i1) = b(i1)/den; y(i1) = (s(i1)-c(i1)*y(i))/den; end %================== % back substitution %================== x(n) = y(n);for i=na:-1:1 x(i)= y(i)-d(i)*x(i+1); end %======= % done %======= return;

Hasil Run Program Matlab FEM Hantaran Panas 1-Matra

Aplikasi metode volume hingga Pengetahuan aliran secara rinci di sekitar suatu benda sangat dibutuhkan dalam desain rekayasa industri, misalnya aliran fluida di suatu mesin, aliran dalam pipa, aliran pada bangunan lepas pantai, kapal laut, mobil dan pesawat terbang. Biasanya informasi ini diperoleh dengan uji coba di laboratorium. Dalam tahap desain, akan sering terjadi perubahan bentuk geometri guna mendapatkan bentuk yang optimum sehingga pengujian di laboratorium, misalnya laboratorium terowongan angin, akan membutuhkan biaya dan waktu yang sangat besar. Simulasi numerik akan merupakan alternatif untuk mendapatkan informasi ini dengan cepat dan relatif murah. Tetapi bagaimanapun simulasi ini masih banyak mendapat kesulitan karena kemampuan komputer masih menjadi kendala untuk mensimulasi persamaan Navier-Stokes secara lengkap dan tiga-dimensi misalnya. Penyederhanaan persamaan yang dilakukan berakibat hasil yang diperoleh tidak akan persis sama seperti hasil yang diperoleh di lapangan (real flow). Walaupun demikian, metode numerik dapat membantu mendesain, memprediksi, dan menganalisis aliran di suatu model, sehingga pengujian model di laboratorium hanya akan dilakukan seminimum dan seefisien mungkin untuk mengurangi waktu dan biaya yang diperlukan. Hampir semua aplikasi aliran pada suatu benda mempunyai bilangan Reynolds tinggi, sehingga metode numerik dan metode potensial yang mensyaratkan bahwa aliran memenuhi syarat tak-viskos dan tak-

rotasional cukup memadai untuk simulasi numerik. Tetapi untuk aliran yang mempunyai aliran vorteks (putaran) yang diakibatkan oleh interaksi antara suatu benda dengan aliran yang datang, persamaan di atas tidak memadai. Metode alternatif yang dapat mengatasi masalah ini ialah metode numerik dengan menggunakan persamaan Euler. Persamaan Euler ialah persamaan tak-viskos, tetapi dapat diterapkan untuk aliran rotasional. Persamaan ini cukup luas digunakan untuk simulasi bidang aerodinamika, terutama untuk aliran termampatkan (compressible flow). Penelitian difokuskan pada penggunaan persamaan Euler untuk aliran termampatkan (compressible Euler flow) dengan bilangan Mach rendah. Saat ini teknik untuk menyelesaikan persamaan Euler yang popular ialah metode beda hingga (finite difference method), metode elemen hingga (MEH, finite element method), dan metode volume hingga (MVH, finite volume method). Untuk model sederhana seperti model tunggal, pembuatan grid berstruktur tidak mengalami hambatan yang berarti, tetapi jika model terdiri atas beberapa komponen dan geometri model berbentuk kompleks, pembentukan grid akan mengalami hambatan yang besar. Kalaupun berhasil, pembentukan grid tersebut akan memerlukan waktu (man hour) rendah. Dua metode terakhir, yaitu MEH dan MVH dapat mengatasi masalah di atas dengan penggunaan grid tak berstruktur, sehingga pembentukan grid di sekitar model berkomponen banyak dan kompleks sekalipun akan mudah dilakukan. Bagaimanapun, waktu perhitungan yang dibutuhkan oleh MEH relatif lebih besar dari MVH, sehingga dalam penelitian ini, untuk menyelesaikan persamaan Euler digunakan MVH. Kelebihan lain dari MVH ialah metode ini dapat diterapkan untuk grid berstruktur dan dalam diskretisasi persamaan atur selalu dalam bentuk konservatif sehingga solusi yang diperoleh akan lebih akurat. Aplikasi MVH dengan persamaan Euler termampat-kan akan dikaji untuk aliran pada benda berkomponen banyak dengan bilangan Mach yang rendah. Pertama ialah aliran di sekitar silinder tunggal yang hasil analitiknya tersedia, sehingga keakuratan hasil numerik yang diperoleh dapat dipelajari. Kasus kedua ialah aliran di sekitar beberapa silinder yang saling berdekatan. Aliran akan diberikan dalam bentuk kualitatif dan kuantitatif. Dalam memahami ciri dinamika aliran kompresibel benda dua-dimensi secara komputasional pada bilangan Mach rendah, dilakukan pengujian terhadap aliran subsonik melalui silinder tunggal dan aliran melalui dua silinder. Aliran subsonik di sekitar silinder tunggal dihitung secara numerik untuk melihat kemampuan metode Euler termampatkan untuk mensimulasi aliran dengan bilangan Mach rendah (M=0.15). Aliran ini dapat dikatakan sebagai aliran aliran tak-termampatkan (incompressible). Dengan demikian, hasil numerik yang diperoleh dapat dibandingkan dengan hasil analitik metode potensial untuk aliran pada sebuah silinder tunggal. Untuk mengkaji kasus ini, grid yang digunakan ialah tipe-O dengan jumlah elemen 9408 dan jumlah titik 4802. Walaupun hasil numerik yang diperoleh sedikit berbeda dengan hasil analitiknya, sebagai alat prediksi cukup memadai.

Perbedaan ini dapat diakibatkan oleh keterbatasan metode numeric pada bilangan Mach yang idealnya M=0.0. Aliran subsonik di sekitar dua buah silinder merupakan kasus utama yang memperlihatkan bahwa untuk geometri yang kompleks sekalipun pembentukan grid untuk dua buah silinder yang saling berdekatan dapat dibuat dengan mudah dan dapat dihitung dengan metode volume hingga. Grid untuk perhitungan ini memiliki jumlah elemen 10174 dan jumlah titik 5206. Grid lebih lanjut supaya distribusi grid di perbatasan grid satu dengan yang lainnya dapat lebih merata (smooth) masih perlu diperbaiki.

2.2 METODE VOLUME HINGGA Metode volume hingga adalah salah satu metode yang dapat digunakan untuk pemodelan matematika. Menurut Apsley (2005) metode volume hingga sesuai diterapkan pada masalah aliran fluida dan aerodinamika. Aliran fluida memenuhi sifat fisis tertentu, dengan memperhatikan sifatsifat fisis tersebut dapat dibangun persamaan matematika. Pada umumnya fluida memenuhi hukum kekekalan massa, kekekalan energi, hukum kekekalan momentum, dan hukum fisika lain sesuai dengan permasalahannya. Pada metode volume hingga harus diketahui domainnya dengan jelas, dari domain tersebut dibagi menjadi grid-grid baik terstruktur maupun tidak. Pada masing-masing grid memenuhi persamaan matematika yang terbentuk. Persamaan yang terbentuk dalam face sehingga perlu dirubah menjadi node agar tidak saling tumpang tindih. Dalam metode ini perlu dilakukan pendiskritan sehingga persamaan yang terbentuk merupakan nilai node. Pendiskritan diperlukan untuk mengubah kontrol face menjadi kontrol node. Terdapat beberapa teknik pendiskritan dalam volume hingga, pemilihan teknik pendiskretan disesuaikan dengan permasalahan yang akan diselesaikan. Teknikteknik pendiskritan tersebut yaitu diantaranya dengan menggunakan metode Upwind Interpolation Sistem (UDS), Linier Interpolation System (CDS), Quadratic Upwind Interpolation Convective Kinematics (QUICK), Higher Order Schemes, dan Other Schemes.

Metode elemen batas

Dalam permasalahan elektromagnetik untuk aplikasi geofisika, rangkaian persamaan Maxwell dapat disederhanakan menjadi persamaan Helmholtz, sehingga dapat dicari solusi permasalahan menggunakan berbagai skema numerik. Metode elemen batas merupakan metode numerik untuk memecahkan persamaan diferensial parsial yang telah dikembangkan dalam beberapa dekade ini untuk memecahkan berbagai permasalahan medan elektromagnet. Metode ini memiliki keunikan dibandingkan metode numerik lain untuk memecahkan persamaan diferensial parsial, karena hanya membutuhkan diskretisasi pada bidang-bidang batas domain pemodelan. Solusi pada batas domain dapat digunakan untuk mencari solusi pada seluruh domain pemodelan, membuat metodeini memiliki algoritma numerik yang sangat efisien. Dalam makalah ini, metode elemen batas digunakan untuk menghitung respon magnetotellurik 2D dalam bentuk resistivitas semu dan fasa impedansi modus TE (transverse electric). Pemodelan elemen hingga digunakan sebagai pembanding hasil pemodelanelemen batas yang dikembangkan.

Metode elemen diskrit


Metode elemen diskrit pada umumnya menggunakan metode eksplisit. Langkah waktu (time step) yang sangat kecil dibutuhkan untuk mempertahankan kestabilan sistem. Pada kasus tertentu dibutuhkan langkah waktu yang sangat kecil sehingga membutuhkan iterasi yang sangat banyak. Prediktor-korektor merupakan metode alternatif untuk meningkatkan langkah waktu tetapi kestabilan sistem tetap dapat dipertahankan. Jumlah iterasi dapat diturunkan dengan meningkatkan langkah waktu dalam penyelesaiannya. Hasil perhitungan dengan metode prediktor-korektor sangat dekat dengan perhitungan analitik. Deskripsi Alternatif : Metode elemen diskrit pada umumnya menggunakan metode eksplisit. Langkah waktu (time step) yang sangat kecil dibutuhkan untuk mempertahankan kestabilan sistem. Pada kasus tertentu dibutuhkan langkah waktu yang sangat kecil sehingga membutuhkan iterasi yang sangat banyak. Prediktor-korektor merupakan

metode alternatif untuk meningkatkan langkah waktu tetapi kestabilan sistem tetap dapat dipertahankan. Jumlah iterasi dapat diturunkan dengan meningkatkan langkah waktu dalam penyelesaiannya. Hasil perhitungan dengan metode prediktor-korektor sangat dekat dengan perhitungan analitik.