Professional Documents
Culture Documents
Con el cual
) (
Ahora si definimos
) (
Entonces
Donde los , son los valores que corresponden al polinomio de Legendre de grado n. ahora bien
para el intervalo
procedemos como siempre de manera que en realidad nos quedara la
siguiente integral
(
Con lo cual solamente nos restara a lo obtenido volver a aplicar la cuadratura, implementamos y
obtenemos
function [Ai,xi,z]=GLM(F,ls,li,b,a,n)
syms x;
Fx=inline(F);
[xi,Ai]=CuadDat(n);
G=0.5*(ls-li)*(dot(Ai,Fx(x,0.5*((ls-li)*xi(1:n)+ls+li))));
Gx=inline(G);
z=0.5*(b-a)*(dot(Ai,Gx(0.5*(((b-a)*xi(1:n))+b+a))));
return
function [x,w]=CuadDat(n)
if n<=1, error('n debe ser mayor a 1');end
[a,b]=coeflege(n);
JacM=diag(a)+diag(sqrt(b(2:n)),1)+diag(sqrt(b(2:n)),-1);
[w,x]=eig(JacM);x=diag(x);scal=2;w=w(1,:)'.^2*scal;
[x,ind]=sort(x);w=w(ind);
return
function[a,b]=coeflege(n)
if n<=1, error('n debe ser mayor a 1');end
a=zeros(n,1);b=a;b(1)=2;
k=[2:n];b(k)=1./(4-1./(k-1).^2);
return
La funcin CuadDat(n) es la que nos genera los pesos y los puntos de evaluacin de la funcin para
la cuadratura de Gauss-Legendre; la sintaxis del programa es la siguiente
Donde n es el grado del polinomio de Legendre y GLM(F,ls,li,b,a,n)corresponde a
De manera que corriendo las siguientes lneas obtenemos las integrales para diversos grados del
polinomio y tomamos el error
symsx;syms y;
for n=2:2:52
[A,xi,z(n/2)]=GLM(sqrt(x*x+y*y),sqrt(1-x*x),-sqrt(1-x*x),1,-1,n);
error(n/2)=abs(z(n/2)-2*pi/3);
end
Esta es la tabla obtenida de las lneas de cdigo anteriores
Grado del polinomio
2
4
6
8
10
12
14
16
18
20
22
24
26
28
30
32
34
36
38
40
42
44
46
48
50
52
2,09472320730912
2,09464910805060
2,09459574962500
2,09455635256073
2,09452663249255
2,09450379105419
2,09448594759181
2,09447180632655
2,09446045464981
2,09445123716871
2,09444367493865
2,09443741243110
2,09443218196464
2,09442777938661
2,09442404715464
2,09442086237809
0,000328104915920058
0,000254005657404299
0,000200647231807682
0,000161250167537208
0,000131530099356514
0,000108688660989564
9,08451986192382e-05
7,67039333555708e-05
6,53522566151921e-05
5,61347755181352e-05
4,85725454590913e-05
4,23100379070007e-05
3,70795714452754e-05
3,26769934115845e-05
2,89447614436611e-05
2,57599848985102e-05
Como podemos ver a medida que aumentamos el grado del polinomio la aproximacin se mejora
teniendo en cuenta que en realidad el algoritmo son solo dos lneas lo dems es implementacin
de MATLAB y las dems lneas son solo para el clculo de los y los si los tuviramos en base de
datos no seran necesarias esas lneas para clculos posteriores. Este algoritmo implementado usa
el mismo grado del polinomio para el clculo de ambas integrales no se hace grados mixtos. Otro
respecto a tener en cuenta es que debido al comando inline usado en la programacin se debe
tener mucho cuidado con las funciones ingresadas ya que estas son evaluadas en orden de
aparicin de las variables simblicas por lo tanto este programa no es muy general pero el
algoritmo la idea si lo es.