Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Análisis Numérico Grupo: 13 UNAM / FI / DCB(DIE) Semestre 2021-1 Tarea 7 Derivación e Integración Numérica Araiza Alfredo, Rincón Carlos, Sánchez Axel 1. Tabla comparativa de la derivada numérica Función valuada en x x 0 1 2 3 4 5 6 7 8 9 10 f(x) 0.0000 0.5104 0.3345 0.0315 -0.1024 -0.0787 -0.0139 0.0198 0.0181 0.0046 -0.0037 Primera Derivada con h=1 x Derivada original Derivada h=1 Diferencia Error Relativo Método 0 1.0000 0.8535 0.1465 14.65% 3 p. adelante 1 0.0725 0.1673 0.0947 130.6312% 2 p. centrados 2 -0.3203 -0.3876 0.0672 20.7894% 3 p. adelante 3 -0.2366 -0.2127 0.0239 10.1088% 3 p. adelante 4 -0.0373 -0.0551 0.0179 47.9214% 2 p. centrados 5 0.0626 0.0443 0.0184 29.3508% 2 p. centrados 6 0.0548 0.0515 0.0033 5.9799% 3 p. adelante 7 0.0128 0.0160 0.0032 24.6747% 2 p. centrados 8 -0.0117 -0.0162 0.0045 38.0934% 3 p. adelante 9 -0.0124 -0.0109 0.0015 12.2288% 2 p. centrados 10 -0.0038 -0.0056 0.0018 46.4201% 3 p. atrás Primera Derivada con h=2 x Derivada original Derivada h=2 Diferencia Error Relativo Método 0 1.0000 0.3601 0.6399 63.9883% 3 p. adelante 2 -0.3203 -0.5082 0.1879 58.6522% Extr. de Richardson 4 -0.0373 -0.0444 0.0072 19.2815% Extr. de Richardson 6 0.0548 0.0586 0.0038 7.0159% Extr. de Richardson 8 -0.0117 -0.0224 0.0107 91.4063% Extr. de Richardson 10 -0.0038 -0.0109 0.0071 185.0995% 3 p. atrás AN21-1x13: Tarea 7 Araiza Alfredo, Rincón Carlos, Sánchez Axel 2. Gráfica comparativa de las derivadas 0 1 2 3 4 5 6 7 8 9 10 X -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1 Y Comparación De Derivadas Derivada original Derivada con h=1 Derivada con h=2 3. Tabla comparativa de la integral numérica Comparación de resultados de integral Método Valor Calculado Subintervalos (n) % Error Relativo Rectangular izquierda 0.352138 11 19.5966% Rectangular derecha 0.533956 11 21.9178% Rectangular media 0.435424 11 0.5799% Trapezoidal compuesta 0.444113 10 1.4040% Simpson compuesta 0.438127 7 0.0372% Cuadratura Gaussiana 0.437927 3 0.0084% Cuadratura Gaussiana 0.437964 5 0.0000% Valor real de la integral: ∫ 1 0 2xx3 dx = 0.437964 (1) 2 AN21-1x13: Tarea 7 Araiza Alfredo, Rincón Carlos, Sánchez Axel 4. Descripción de trabajo en equipo Para obtener los resultados, nos repartimos equitativamente todo el trabajo, Alfredo se encargó de realizar y modificar los programas para la integral númerica, Carlos realizó los programas para poder efectuar correctamente la derivada numérica y obtener la gráfica comparativa de las derivadas y Axel se encargó de capturar la información en LATEX(tablas, gráfica, comentarios y códigos), además de realizar el ejercicio de Cuadratura Gaussiana a mano. Al final realizamos una videollamada para verificar que el archivo y su contenido sean los correctos y para aclarar las dudas que surgieron en el proceso. 3 AN21-1x13: Tarea 7 Araiza Alfredo, Rincón Carlos, Sánchez Axel 5. Desarrollo 4 AN21-1x13: Tarea 7 Araiza Alfredo, Rincón Carlos, Sánchez Axel 6. Códigos utilizados ’Código Principal Derivación Numérica’ 1 clc % Limpia Command Window 2 clear all % Limpia Workspace 3 4 fe1 = @(x) sin(x).*exp(-(1/2)*x); % Función utilizada 5 df1 = @(x) exp(-x/2).*cos(x) - (exp(-x/2).*sin(x))/2; % Derivada de la f. 6 h = 1; % Paso entre puntos x 7 x = 0:h:10; % Valores de x 8 y = fe1(x); % Valores de la función valuada en x 9 disp(’Valores de la derivada original valuada en x:’) 10 z = df1(x)’ 11 disp(’Valores de la derivada con h=1:’) 12 %% Para f’(0) 13 a = d3p_adelante(x(1:3),y(1:3)) 14 %% Para f’(1) 15 b = d2p_centrados(x([1 3]),y([1 3])) 16 %% Para f’(2) 17 c = d3p_adelante(x(3:5),y(3:5)) 18 %% Para f’(3) 19 d = d3p_adelante(x(4:6),y(4:6)) 20 %% Para f’(4) 21 e = d2p_centrados(x([4 6]),y([4 6])) 22 %% Para f’(5) 23 f = d2p_centrados(x([5 7]),y([5 7])) 24 %% Para f’(6) 25 g = d3p_adelante(x(7:9),y(7:9)) 26 %% Para f’(7) 27 i = d2p_centrados(x([7 9]),y([7 9])) 28 %% Para f’(8) 29 j = d3p_adelante(x(9:11),y(9:11)) 30 %% Para f’(9) 31 k = d2p_centrados(x([9 11]),y([9 11])) 32 %% Para f’(10) 33 l = d3p_atras(x(9:11),y(9:11)) 34 %% Gráfica de derivadas 35 figure 36 plot(x,z,’s’,"Color",’green’,’MarkerSize’,8,’Linewidth’,2) 37 hold on 38 plot(0,a,’o’,"Color",’red’,’MarkerSize’,8,’Linewidth’,1) 39 plot(1,b,’o’,"Color",’red’,’MarkerSize’,8,’Linewidth’,1) 40 plot(2,c,’o’,"Color",’red’,’MarkerSize’,8,’Linewidth’,1) 41 plot(3,d,’o’,"Color",’red’,’MarkerSize’,8,’Linewidth’,1) 42 plot(4,e,’o’,"Color",’red’,’MarkerSize’,8,’Linewidth’,1) 43 plot(5,f,’o’,"Color",’red’,’MarkerSize’,8,’Linewidth’,1) 44 plot(6,g,’o’,"Color",’red’,’MarkerSize’,8,’Linewidth’,1) 45 plot(7,i,’o’,"Color",’red’,’MarkerSize’,8,’Linewidth’,1) 5 AN21-1x13: Tarea 7 Araiza Alfredo, Rincón Carlos, Sánchez Axel 46 plot(8,j,’o’,"Color",’red’,’MarkerSize’,8,’Linewidth’,1) 47 plot(9,k,’o’,"Color",’red’,’MarkerSize’,8,’Linewidth’,1) 48 plot(10,l,’o’,"Color",’red’,’MarkerSize’,8,’LineWidth’,1) 49 %% Extrapolación de Richardson con h=2 50 h = 2; 51 x = 0:h:10; 52 y = fe1(x); 53 disp(’Valores de la derivada con h=2’) 54 % Para f’(0) 55 m = d3p_adelante(x(1:3),y(1:3)) 56 % Para f’(2) 57 n = (4/3*c-1/3*(d2p_centrados(x([1 3]),y([1 3])))) 58 % Para f’(4) 59 o = (4/3*e-1/3*(d2p_centrados(x([2 4]),y([2 4])))) 60 % Para f’(6) 61 p = (4/3*g-1/3*(d2p_centrados(x([3 5]),y([3 5])))) 62 % Para f’(8) 63 q = (4/3*j-1/3*(d2p_centrados(x([4 6]),y([4 6])))) 64 % Para f’(10) 65 r = d2p_atras(x(5:6),y(5:6)) 66 % Gráficas de h=2 67 hold on 68 plot(0,m,’*’,"Color",’blue’,’MarkerSize’,8,’Linewidth’,1) 69 plot(2,n,’*’,"Color",’blue’,’MarkerSize’,8,’Linewidth’,1) 70 plot(4,o,’*’,"Color",’blue’,’MarkerSize’,8,’Linewidth’,1) 71 plot(6,p,’*’,"Color",’blue’,’MarkerSize’,8,’Linewidth’,1) 72 plot(8,q,’*’,"Color",’blue’,’MarkerSize’,8,’Linewidth’,1) 73 legend(’Derivada original’,’Derivada con h=1’) 74 plot(10,r,’*’,"Color",’blue’,’MarkerSize’,8,’Linewidth’,1,’DisplayName’... 75 ,’Derivada con h=2’) ’Diferencias Finitas Con 2 Puntos Centrados’ 1 function df = d2p_centrados(x,y) 2 % x es un vector con dos componentes [xi+1 xi-1] 3 % y es un vector con dos componentes [f(xi-1) f(xi)] 4 h2 = x(2) - x(1); % Distancia entre xi+1 xi-1 [2h] 5 df = (y(2) - y(1))/h2 ; % Derivada con dos puntos centrados 6 end ’Diferencias Finitas Con 3 Puntos Hacia Adelante’ 1 function df = d3p_adelante(x,y) 2 % x es un vector con tres componentes 3 % y es un vector con tres componentes 4 h4 = x(3) - x(1); % Distancia entre xi xi-1 5 df = (-3*y(1)+4*y(2)-y(3))/h4; % Derivada con tres puntos 6 end 6 AN21-1x13: Tarea 7 Araiza Alfredo, Rincón Carlos, Sánchez Axel ’Diferencias Finitas Con 3 Puntos Hacia Atrás’ 1 function df = d3p_atras(x,y) 2 % x es un vector con tres componentes 3 % y es un vector con tres componentes 4 h5 = x(3) - x(1); % Distancia entre xi xi-1 5 df = (y(1)-4*y(2)+3*y(3))/h5; % Derivada con tres puntos 6 end ’Código Principal Integración Numérica’ 1 clc % Limpia Command Window 2 clear all % Limpia Workspace 3 syms x 4 5 f1 = @(x) (2^x)*(x^3); 6 %Limites de integración de la funcion 7 a=0; 8 b=1; 9 n1=11; % Para Regla rectangular compuesta 10 n2=10; %Para Regla rectangular trapezoidal 11 integrales(f1,a,b,n1,n2);% Regla rectangular compuesta y 12 % Regla rectangular trapezoidal 13 ns=7; % Para Regla de simpson compuesta 14 Reglas_simpson(f1,a,b,ns); 15 %Valores n de cuadratura gaussiana 16 nc1=3; 17 nc2=5; 18 cuadratura_gaussiana(f1,a,b,nc1) 19 cuadratura_gaussiana(f1,a,b,nc2) ’Regla Rectangular Compuesta Y Trapezoidal’ 1 function integrales(f1,a,b,n1,n2) 2 % h y ht Paso (distancia entre puntos en x) 3 h=(b-a)/n1; % h Para Regla rectangular compuesta 4 ht=(b-a)/n2; % h Para Regla trapezoidal compuesta 5 x=a:h:b; % Genera puntos x1, x2, x3,... , xn+1 6 % Regla rectangular compuesta (derecha e izquierda) 7 y=subs(f1,x); % y para Regla rectangular compuesta(derecha e izquierda) 8 9 xc=(h+2*a)/2:h:((2*n1-1)*h+(2*a))/2;%Genera puntos x1, x2, x3,... , xn+1 10 % Regla rectangular compuesta (central) 11 y1=subs(f1,xc); % y para Regla rectangular compuesta(central) 12 13 xt=a+ht:ht:b-ht; % valor para evaluar Regla trapezoidal14 y2=subs(f1,xt); % y para Regla rectangular trapezoidal 15 7 AN21-1x13: Tarea 7 Araiza Alfredo, Rincón Carlos, Sánchez Axel 16 %Formulas para Regla Rectangular compuesta 17 rd=h*sum(y(2:end)); %Extremo derecho 18 ri=h*sum(y(1:n1)); %Extremo izquierdo 19 rc=h*sum(y1(1:n1)); %Punto medio 20 21 %Formula para Regla rectangular trapezoidal 22 tc=(ht/2)*(subs(f1,a)+2*sum(y2(1:end))+subs(f1,b)); 23 24 fprintf(’Regla Rectangular derecha: \n’); 25 fprintf(’Resultado integral= %f \n’,rd); 26 fprintf(’Regla Rectangular izquierda: \n’); 27 fprintf(’Resultado integral= %f \n’, ri); 28 fprintf(’Regla Rectangular centrada: \n’); 29 fprintf(’Resultado integral= %f \n’, rc); 30 fprintf(’Regla Trapezoidal: \n’); 31 fprintf(’Resultado integral= %f \n’, tc); 32 fprintf(’--------------------------------------------- \n’); 33 34 35 end ’Reglas de Simpson Compuestas’ 1 function Reglas_simpson(f1,a,b,n) 2 h=(b-a)/n; % Paso (distancia entre puntos en x) 3 x=a:h:b; %Genera puntos x1, x2, x3,... , xn+1 4 if mod(n,2) == 0 %Si el número de sub intervalos 5 %es par se realiza 1/3 en todo 6 s1=(subs(f1,a))+(subs(f1,b)); 7 for i=1:n-1 8 if mod(i,2)==0 9 s1=s1+2*subs(f1,a+i*h); 10 else 11 s1=s1+4*subs(f1,a+i*h); 12 end 13 end 14 s1=s1*(h/3); 15 16 %Realiza 3/8 cuando n mod 3 = 0 17 elseif mod(n,3) == 0 18 s2=(subs(f1,a))+(subs(f1,b)); 19 for i=1:n-1 20 if mod(i,3)==0; 21 s2=s2+2*subs(f1,a+i*h); 22 else 23 s2=s2+3*subs(f1,a+i*h); 24 end 25 end 8 AN21-1x13: Tarea 7 Araiza Alfredo, Rincón Carlos, Sánchez Axel 26 s2=s2*((3*h)/8); 27 28 29 else 30 31 %caso cuando n no es par ni múltiplo de 3 32 sI1=(subs(f1,a))+(subs(f1,x(end-3))); 33 s_1=0; 34 s_2=0; 35 36 for i=2:2:n-3 37 s_1=s_1+subs(f1,x(i)); 38 end 39 for i=3:2:n-4 40 s_2=s_2+subs(f1,x(i)); 41 end 42 sI1=(h/3)*(sI1+4*s_1+2*s_2); 43 sI2=(subs(f1,x(end-3)))+(subs(f1,b)); 44 s_1=subs(f1,x(end-2)); 45 s_2=subs(f1,x(end-1)); 46 47 sI2=(h*3/8)*(sI2+3*s_1+3*s_2); 48 49 sc=sI1+sI2; 50 end 51 52 53 54 if mod(n,2) == 0 55 fprintf(’Resultado integral= %f (Simpson 1/3) \n’, s1); 56 elseif mod(n,3) == 0 57 fprintf(’Resultado integral= %f (Simpson 3/8) \n’, s2); 58 else 59 fprintf(’Resultado integral= %f (Simpson compuesta) \n’, sc); 60 end ’Cuadratura Gaussiana’ 1 function cuadratura_gaussiana(f1,a,b,n) 2 % Dependiendo del valor n se escojen los pesos de c y los nodos Gaussianos 3 switch n 4 case 2 5 ci=[1,1]; 6 xi=[-0.577350269,0.577350269]; 7 case 3 8 ci=[0.5555555556,0.8888888889,0.5555555556]; 9 xi=[-0.774596669,0,0.774596669]; 10 case 4 9 AN21-1x13: Tarea 7 Araiza Alfredo, Rincón Carlos, Sánchez Axel 11 ci=[0.347854845,0.652145155,0.652145155,0.347854845]; 12 xi=[-0.861136312,-0.339981044,0.339981044,0.861136312]; 13 case 5 14 ci=[0.236926885,0.478628670,0.568888889,0.478628670,0.236926885]; 15 xi=[-0.906179846,-0.538469310,0,0.538469310,0.906179846]; 16 case 6 17 ci=[0.171324492,0.360761573,0.467913935,0.467913935,0.360761573,... 18 0.171324492]; 19 xi=[-0.932469514,-0.661209386,-0.238619186,0.238619186,... 20 0.661209386,0.932469514]; 21 end 22 s=0; 23 aux=zeros(1,n); 24 fx=zeros(1,n); 25 for i=1:n 26 aux(i)=(((b-a)*xi(i))+b+a)/2; 27 fx(i)=double(subs(f1,’x’,aux(i))); 28 s=s+(ci(i)*fx(i)); 29 end 30 Ifx=((b-a)/2)*s; 31 fprintf(’\n --------------------------------------------- \n’); 32 fprintf(’Cuadratura Gaussiana \n’); 33 fprintf(’El resultado de la integral con n= %f es %f \n’,n,Ifx); 34 end 10
Compartir