Diferenciación, integración y edo no lineales

Solo disponible en BuenasTareas
  • Páginas : 10 (2438 palabras )
  • Descarga(s) : 0
  • Publicado : 30 de noviembre de 2010
Leer documento completo
Vista previa del texto
Diferenciación, Integración y EDO no lineales
Laboratorio II

MA2601 Ecuaciones Diferenciales Ordinarias Integrantes: Paulina Leiva Tamara Vejar Profesor: Gonzalo Hernández Auxiliares: Francisco Bravo Pedro Montealegre

Actividad 1: Interpolación y Diferenciación
Consideremos las funciones test: = en el intervalo [-3,3] 1) Código Matlab:
x1=linspace(-3,3,12)';%malla gruesa de puntosx2=linspace(-3,3,120)';%malla fina de puntos func1=sin(x1.^2)./(x1.^2+1); func2=sin(x2.^2)./(x2.^2+1); z1=vander(x1); % matriz de Vandermonde a1=z1\func1; pol1=polyval(a1,x1);%polinomio de interpolación de Lagrange para f(x)=sin(x^2)/(x^2+1) utilizando la malla gruesa z2=vander(x2); a2=z2\func2; pol2=polyval(a1,x2);%polinomio de interpolación de Lagrange para f(x)=sin(x^2)/(x^2+1) utilizando la mallafina func3=x1.*sin(x1.^2); func4=x2.*sin(x2.^2); a3=z1\func3; pol3=polyval(a3,x1);%polinomio de interpolación de Lagrange para g(x)=x*sin(x^2) utilizando la malla gruesa a4=z2\func4; pol4=polyval(a3,x2);%polinomio de interpolación de Lagrange para g(x)=x*sin(x^2) utilizando la malla fina figure(1) plot(x2',func2','k-d',x2,pol2,'g-p') title('Datos (xi,yi) y del polinomio de interpolación pl(x)');xlabel('Malla fina de puntos'); ylabel('Polinomio de interpolación de f(x)=sin(x^2)/(x1^2+1)'); legend('f(x) evaluado en una malla fina','pl(x) evaluado en una malla fina') figure (2) plot(x2',func4','k-d',x2,pol4,'g-p') title('Datos (xi,yi) y del polinomio de interpolación pl(x)'); xlabel('Malla fina de puntos'); ylabel('Polinomio de interpolación de g(x)=x*sin(x^2)'); legend('g(x) evaluado en unamalla fina','pl(x) evaluado en una malla fina')

sin

=

Gráficos obtenidos:

De acuerdo a los gráficos generados, es posible concluir que en el intervalo [-2,2] el polinomio de interpolación de Lagrange es una buena aproximación de ambas funciones test. Mientras que, fuera de este intervalo, el error producido el considerablemente mayor. 2)Código Matlab:
x1=linspace(-3,3,12)';%mallagruesa de puntos x2=linspace(-3,3,120)';%malla fina de puntos h=10^(-6); %Derivada de f(x) y g(x) der1=((2*(x1).*cos((x1).^2).*((x1).^2+1))-(2.*(x1).*sin((x1).^2)))./((x1).^2+1).^2; der2=((2*(x2).*cos((x2).^2).*((x2).^2+1))-(2.*(x2).*sin((x2).^2)))./((x2).^2+1).^2; der3=sin((x1).^2)+(2.*(x1).^2).*cos((x1).^2); der4=sin((x2).^2)+(2.*(x2).^2).*cos((x2).^2); fx1posi=(sin((x1+h).^2)./((x1+h).^2+1));fx1neg=(sin((x1-h).^2)./((x1-h).^2+1)); fx1posi2=(sin((x1+2.*h).^2)./((x1+2.*h).^2+1)); fx1neg2=(sin((x1-2.*h).^2)./((x1-2.*h).^2+1)); fx2posi=(sin((x2+h).^2)./((x2+h).^2+1)); fx2neg=(sin((x2-h).^2)./((x2-h).^2+1)); fx2posi2=(sin((x2+2.*h).^2)./((x2+2.*h).^2+1)); fx2neg2=(sin((x2-2.*h).^2)./((x2-2.*h).^2+1)); gx1posi=(x1+h).*sin((x1+h).^2); gx1neg=(x1-h).*sin((x1-h).^2);gx1posi2=(x1+2.*h).*sin((x1+2.*h).^2); gx1neg2=(x1-2.*h).*sin((x1-2.*h).^2); gx2posi=(x2+h).*sin((x2+h).^2); gx2neg=(x2-h).*sin((x2-h).^2); gx2posi2=(x2+2.*h).*sin((x2+2.*h).^2); gx2neg2=(x2-2.*h).*sin((x2-2.*h).^2); %Derivada de f(x) y g(x)usando la fórmula de los 3 puntos dertres1=((sin((x1+h).^2)./((x1+h).^2+1)-sin((x1-h).^2)./((x1-h).^2+1))./(2.*h));dertres2=((sin((x2+h).^2)./((x2+h).^2+1)-sin((x2-h).^2)./((x2-h).^2+1))./(2.*h)); dertres3=((x1+h).*sin((x1+h).^2)-(x1-h).*sin((x1-h).^2))./(2.*h); dertres4=((x2+h).*sin((x2+h).^2)-(x2-h).*sin((x2-h).^2))./(2.*h); %Derivada de f(x) y g(x)usando la fórmula de los 5 puntos dercinc1=(fx1neg2-8.*fx1neg+8.*fx1posi-fx1posi2)./(12.*h); dercinc2=(fx2neg2-8.*fx2neg+8.*fx2posi-fx2posi2)./(12.*h); dercinc3=(gx1neg2-8.*gx1neg+8.*gx1posi-gx1posi2)./(12.*h);dercinc4=(gx2neg2-8.*gx2neg+8.*gx2posi-gx2posi2)./(12.*h); figure(1) %Gráfico de la derivada aproximada de la función f(x)=sin(x^2)/(x^2+1) y la derivada numérica calculada evaluada en una malla gruesa subplot(2,1,1)

hold on title('Derivada de f(x)=sin(x^2)/(x^2+1)usando la fórmula de los 3 puntos, evaluada en la malla gruesa de puntos'); xlabel('Posición'); ylabel('f`(x)'); plot(x1,der1,'-ms',x1,dertres1,'-ko')...
tracking img