Senin, 13 Februari 2017

Perhitungan Integral

PERHITUNGAN INTEGRAL

       Solusi numerik dari integral terbatas bisa dihitung secara efisien di Matlab. Pertma , kita akan pelajari perhitungan integral dengan berbagai metode numerik. Berikutnya, kita kembangkan ke perhitungan integral lipat-2 dan lipat-3.

Menghitung Integral dengan Metode Numerik

Integral terbatas bisa diselesaikan secara numerik dengan





Terdapat sejumlah metode perhitungan integral secara numerik, misalkan : trapezoid, kuadratur, dll :

  •  trapz(x,y); menghitung integral dari y sebagai fungsi dari x. Vektor x dan y panjangnya harus sama. Nilai elemen dalam x sebaiknya disortir
  •  trapz(x,A); menghitung integral dari setiap kolom di A sebagai fungsi dari x; hasilnya berupa vektor baris berisi hasil integrasi. Jumlah kolom A harus sama dengan panjang x.
  •  quad(‘fcn’,a,b); menghitung aproksimasi dari integral fungsi fcn pada interval a ≤ x ≤ b. Fungsi fcn harus didefinisikan terlebih dahulu dalam M-file.
  •  quad(‘fcn’,a,b,tol); menghitung aproksimasi integral dari fcn dengan toleransi kesalahan sebesar nol.
  •  quad(‘fcn’,a,b,tol,trace,pic); menghitung aproksimasi integral dari fcn dengan toleransi tol. Jika trace tidak nol, maka grafik yang mengilustrasikan integral akan diplot. Hasil integrasi dievaluasi pada pic. Kita bisa memberi nilai nol pada tol dan trace dengan matriks kosong [ ].
  •  quad8( ... ); sama dengan command quad, tetapi menghitung dengan akurasi yang lebih tinggi.
  •  quadl( ... ); sama dengan command quad8( ... ), namun untuk MATLAB versi terbaru.



Sebagai contoh, kita hitung integral berikut ini dengan metode numerik :

  >> x = linspace(0,2,50); % definisikan vektor x 
  >> y = exp(-x.^3); % hitung nilai y 
  >> integral = trapz(x,y)s % integralkan ! 
  integral = 
  0.8821 

Dengan command quad, kita terlebih dahulu harus mendefinisikan fungsi dalam M-file :

  function y = myfun(x) 
  y = exp(-x.^3); 

Kita hitung integral tersebut dengan toleransi yang berbeda :

  >> format long; % format bilangan “long” 
  >> int_1 = quad(„myfun‟,0,2,0.001), ... 
  int_2 = quad(„myfun‟,0,2,0.00001) 
  int_1 = 
  0.89309707589214 
  int_2 = 
  0.89295225387894 

Kita bandingkan akurasinya dengan quad8 : 

  >> int_3 = quadl(„myfun‟,0,2) 
  int_3 = 
  0.89295351461757 
  >> format short; % mengembalikan format ke “short” 

Ini adalah hasil paling akurat yang bisa diperoleh Matlab.

Integral Lipat-2 

Kita bisa menghitung integral terbatas lipat-2 dengan menyelesaikan integral integralnya satu per satu menggunakan command quad. Misalkan kita ingin menghitung integral berikut ini :





 Pertama, kita buat M-file untuk fungsi ini dengan nama fungsi_lipat2.m :
  function z =fungsi_lipat2(x,y)
  z=exp(-x.^3-y); 

Rumus praktis untuk menghitung integral di atas adalah :    dblquad(‘fcn’,xmin,xmax,ymin,ymax,tol)    menghitung integral lipat-2 untuk fungsi dua variabel fcn pada area segiempat xmin ≤ x
    ≤ xmax, ymin ≤ y ≤ ymax.


Untuk contoh integral di atas :    >> integral_lipat_dua=dblquad('fungsi_lipat2',0,1,0,1) 
    integral_lipat_dua =
      0.5104
 


 Untuk mendapatkan gambaran dari fungsi tersebut, kita ketikkan :

    >> x=linspace(0,1,50);
    >> for i=1:50
      integral(i)=quad('fungsi_lipat2',0,1,[],[],x(i));
    end
    >> integral2=trapz(x,integral)
      integral2 =
      0.5105
    >> [X,Y]=meshgrid(x,x);
    >> Z=fungsi_lipat2(X,Y);
    >> mesh(X,Y,Z)
 

Menghasilkan :


Integral Lipat 3

Serupa dengan integral lipat-2, integral lipat-3 bisa kita selesaikan setahap demi setahap.
Kita buat fungsi di dalam M-file dengan skrip sebagai berikut :

    function w =fungsi_lipat3(x,y,z)
    w=sqrt(x.^2+y.^2+z.^2);
  

Cara cepat :    triplequad(‘fcn’,xmin,xmax,ymin,ymax,zmin,zmax,tol)   menghitung integral lipat-3 untuk fungsi tiga variabel fcn
   pada area balok xmin ≤ x ≤ xmax, ymin ≤ y ≤ ymax, zmin ≤
   z ≤ zmax, dengan toleransi kesalahan sebesar tol.


Unruk contoh integral di atas, kita hitung dengan toleransi 0,001 :    >> int_tripel =triplequad('fungsi_lipat3',-2,2,-2,2,-2,2,0.001)
    int_tripel =
    122.9577
  

Tidak ada komentar:

Posting Komentar