El método Gauss - Lengendre, es una regla o cuadratura perteneciente a las formulas de Newton- Cotes para la integración numérica con limites cerrados.
El código implementado a continuación se divide en dos funciones:
- La función “gaussleg”, esta función es la que recibe los parámetros con los cuales se van hacer los cálculos para generar la integración numérica.
- La función “gauss”, es la función que genera las abscisas y pesos.
Función “Gaussleg”:
function [anss,abs1,wgt1] = gaussleg(f,a,b,gp,varargin)format longgraf=(f);f = fcnchk(f,’vectorized’);if nargin < 4, gp = 106; end % Default numbero de puntos Gauss.[abs1, wgt1] = Gauss(gp);Alphas = ((b-a)./2).*(abs1+1)+a; % Mapeo f a [-1,1].anss = sum(wgt1.*f(Alphas))*(b-a)/2;if isnan(anss) | isinf(anss)fprintf([‘\n\t Incrementando el numbero de puntos Gauss ‘…por 1 porque esta a NaN.\n’])[anss,abs1,wgt1] = gaussleg(f,a,b,gp+1);endh= (b-a) /gp;x= a+ (0:gp)*h;y=eval(graf);plot(x,y,’b-‘);grid;title(‘Gauss Legendre’),xlabel(‘x’);ylabel(‘f(x)’);
Funcion Gauss:
function [x, w] = Gauss(n)% Genera las abscisas y pesos para la Cuadratura Gauss-Legendre.x = zeros(n,1);w = x;m = (n+1)/2;for ii=1:mz = cos(pi*(ii-.25)/(n+.5)); % estimado Inicial.z1 = z+1;while abs(z-z1)>epsp1 = 1;p2 = 0;for jj = 1:np3 = p2;p2 = p1;p1 = ((2*jj-1)*z*p2-(jj-1)*p3)/jj; % El polinomial. Legendreendpp = n*(z*p1-p2)/(z^2-1); % La L.P. Derivada.z1 = z;z = z1-p1/pp;endx(ii) = -z; % Construye las abscissas.x(n+1-ii) = z;w(ii) = 2/((1-z^2)*(pp^2)); % Construye los pesos.w(n+1-ii) = w(ii);end
¿Me podría decir que es ,gp y varargin Por favor?
ResponderEliminarNo entiendo muy bien como puedo usar este programa, cuando pongo en Gauss(n), n=2, me sale solo ans=0.574, Y luego para usar el otro programa, una vez usado Gauss y conectarlo con Función “Gaussleg”; no sé ni por donde empezar porque no conozco que es gp y varargin . Y no se como se usa varargin aquí.... Con mucha humildad, si me puedes ayudar porfvor ...
ResponderEliminarhe encontrado un algortimo de cuadratura gaussiana que es en dos variables independientes y que funciona aunque con margen de error para 5 puntos, el de function Gauss de esta página es más óptimo:
ResponderEliminarScipt1:
function cuadraturadoble(f,a,b,c,d,n,m)
%Paso 1
h1=(b-a)/2;
h2=(b+a)/2;
J=0;
A=coefraiz(m);
B=coefraiz(n);
%Paso 2
for i=1:m
%Paso 3
JX=0;
x=h1*A(i,2)+h2;
d1=d(x);
c1=c(x);
k1=(d1-c1)/2;
k2=(d1+c1)/2;
%Paso 4
for j=1:n
y=k1*B(j,2)+k2;
Q=f(x,y)
JX=JX+B(j,1)*Q;
end
%Paso 5
J=J+A(i,1)*k1*JX
end
%Paso 6 (SALIDA)
J=h1*J
end
%Función para calcular coeficientes y raíces
function[M]=coefraiz (q)
syms x;
raiz=double(vpasolve(legendreP(q,x)==0));
for i=1:q
f=1;
for j=1:q
if i~=j
f=f*((x-raiz(j))/(raiz(i)-raiz(j)));
end
end
coef(i)=double(int(f,-1,1));
end
M=[coef',raiz]
end
Comand Windows:
>> f=@(x,y) exp(y-x)
f =
function_handle with value:
@(x,y)exp(y-x)
>> c=@(x) 0
c =
function_handle with value:
@(x)0
>> d=@(x) 0.5
d =
function_handle with value:
@(x)0.5
>> cuadraturadoble(f,0,0.5,c,d,4,4)
M =
0.3479 -0.8611
0.6521 -0.3400
0.6521 0.3400
0.3479 0.8611
M =
0.3479 -0.8611
0.6521 -0.3400
0.6521 0.3400
0.3479 0.8611
Q = 1
Q = 1.1392
Q = 1.3502
Q = 1.5381
J = 0.2180
Q = 0.8778
Q = 1
Q = 1.1853
Q = 1.3502
J =0.5767
Q = 0.7406
Q = 0.8437
Q =1
Q = 1.1392
J = 0.8793
Q = 0.6501
Q = 0.7406
Q = 0.8778
Q = 1
J = 1.0210
J = 0.2553
Ankara
ResponderEliminarBolu
Sakarya
Mersin
Malatya
VD8BBS
whatsapp görüntülü show
ResponderEliminarücretli.show
OUQUJ
bartın evden eve nakliyat
ResponderEliminaredirne evden eve nakliyat
mersin evden eve nakliyat
sinop evden eve nakliyat
siirt evden eve nakliyat
NCWMW
68676
ResponderEliminarPoloniex Güvenilir mi
Amasya Evden Eve Nakliyat
Mardin Şehirler Arası Nakliyat
Bibox Güvenilir mi
Sakarya Lojistik
Siirt Lojistik
İstanbul Şehirler Arası Nakliyat
Adıyaman Parça Eşya Taşıma
Isparta Lojistik
78E1D
ResponderEliminarYenimahalle Parke Ustası
Adana Şehirler Arası Nakliyat
Tekirdağ Çatı Ustası
Kütahya Evden Eve Nakliyat
Çankırı Şehirler Arası Nakliyat
Karaman Parça Eşya Taşıma
Bartın Parça Eşya Taşıma
Balıkesir Parça Eşya Taşıma
Kocaeli Şehirler Arası Nakliyat
E7802
ResponderEliminarJns Coin Hangi Borsada
Gate io Borsası Güvenilir mi
Twitter Takipçi Hilesi
Soundcloud Dinlenme Satın Al
Kripto Para Çıkarma
Bitcoin Para Kazanma
Azero Coin Hangi Borsada
Coin Üretme Siteleri
Ceek Coin Hangi Borsada