Anda di halaman 1dari 3

LANGKAH-LANGKAH METODE LAGUERRE.

1. Menentukan fungsi integral yang ingin di selesaikan


2. Menentukan batas atas dan batas bawah.
3. Menentukan nilai
4. Mensubtitusikan nilai xi dan yi ke fungsi Integral.
5. Menghitung jumlah Laquerre sumLA = = 1sampai n.
6. Menghitung integrasi sumLA
7. Membuat program MATLAB dalam menyelesaikan integral lipat dua
dengan metode Kuadratur Gauss Hermite dan Kuadratur Gauss
Laguerre.

ALGORITMA DAN PROGRAM METODE LAGUERRE.

Script Untuk Metode Kuadratur Gauss Laguerre


clc;
clear;
syms y x;
sym ('fx');
format long
fx= input('Masukkan Fungsi f(x,y) :');
a=input('Masukkan batas bawah (a) daerah integrasi terhadap
variabel x :');
b=input('Masukkan batas atas (b) daerah integrasi terhadap
variabel x :');
c=input('Masukkan batas bawah (c) daerah integrasi terhadap
variabel y : ');
d=input('Masukkan batas atas (d) daerah integrasi terhadap
variabel y :');

%Mengunakan metode GAUSS LAQUERRE


x1=((b-a)/2)*(2-sqrt(2))+(a+b)/2
x2=((b-a)/2)*(2+sqrt(2))+(a+b)/2
y1=((d-c)/2)*(2-sqrt(2))+(d+c)/2
y2=((d-c)/2)*(2+sqrt(2))+(d+c)/2
fx1y1=subs(fx,{x,y},{x1,y1})
fx1y2=subs(fx,{x,y},{x1,y2})
fx2y1=subs(fx,{x,y},{x2,y1})
fx2y2=subs(fx,{x,y},{x2,y2})
sumLA=((1/4)*(2+sqrt(2)))*fx1y1+((1/4)*(2-sqrt(2)))*fx1y2+
((1/4)*(2-sqrt(2)))*fx2y1+((1/4)*(2-sqrt(2)))*fx2y2
LA = ((b-a)/2)*((d-c)/2)*sumLA
Fungsi polyroot dalam modul ini menghitung semua
akar Pn(x) = 0, di mana polinomial Pn(x) didefinisikan
oleh array koefisiennya a = [a1, a2, a3, ..., an + 1],
setelah akar pertama dihitung oleh subfungsi laguerre,
polinomial dideflasi menggunakan deflpoly dan nol
berikutnya dihitung dengan menerapkan laguerre ke
polinomial deflated. Proses ini diulangi sampai semua n
akar telah ditemukan. Jika root yang dikomputasi memiliki
bagian imajiner yang sangat kecil, sangat mungkin bahwa
itu merupakan kesalahan pembulatan. Oleh karena itu,
polyroot menggantikan bagian imajiner kecil dengan nol.

PROGRAM POLYROOTS METODE LAGUERRE.

function root = polyroots(a,tol)


%Return all the roots of the polynomial
%a(1)*x^n + a(2)*x^(n-1)+ ... + a(n+1).
%USAGE: root = polyroots(a,tol).
%tol = error tolerance (default is 1.0e4*eps).

if nargin == 1; tol = 1.0e-6;end


n = length(a)-1;
root = zeros(n,1);
for i = 1:n
x = laguerre(a,tol);
if abs(imag(x)) < tol; x = real (x); end
root(i) = x;
a = deflpoly(a,x);
end

function x = laguerre(a,tol)
%Returns a root of the polynomial
%a(1)*x^n + a(2)*x^(n-1) + ... + a(n+1).
x = randn; %Start with random number
n = length(a)-1;
for i = 1:30
[p,dp,ddp] = evalpoly(a,x);
if abs(p)< tol; return;end
g = dp/p; h=g*g-ddp/p;
f = sqrt((n-1)*(n*h-g*g));

if abs(g+f) >= abs(g-f); dx = n/(g+f);


else; dx = n/(g-f); end
x = x-dx;
if abs(dx)< tol; return; end
end
error('Too many iteration in Laguerre')

function b = deflpoly(a,r)
%Horner's deflation:
%a(1)*x^n+a(2)*x^(n-1)+...+a(n+1)
%=(x-r)[b(1)*x^(n-1)+b(2)*x^(n-2)+...+b(n)].
n= length(a)-1;
b= zeros(n,1);
b(1)=a(1);
for i = 2:n; b(i)=a(i)+r*b(i-1); end

Anda mungkin juga menyukai