Está en la página 1de 2

DiscusindeMtodosNumricosyProgramacin 19deAbrilde2012 1. Realiceyexpliqueunprogramaparacalcularpsilondelamquina.

%epsilondemaquina.m x=1; while 1+x>1 % Reduzco x hasta que se aplique corte x=x/2; end epsilon=x*2; % el psilon de la mquina viene dado por el valor anterior a que se % aplique corte. disp('El psilon de la mquina es: ') disp(epsilon)

2. Realiceunprogramaparaquepidaingresarunnmeroenteropositivoydigasiesel nmeroesparoimpar.
% par_Discusion_1904.m n=input('Ingrese un nmero entero positivo = '); % Validacin del Nmero ingresado if n<0 % El nmero debe ser positivo disp('UD. ha ingresado un nmero negativo') disp(' Vuelva a intentarlo ') elseif round(n)~=n % el nmero debe ser entero disp('Ud. ha ingresado un nmero fracionario') disp(' Vuelva a intentarlo ') else if rem(n,2)% si existe residuo de n/2 el nmero es impar. fprintf('El nmero %3.0f es impar\n',n) else fprintf('El nmero %3.0f es par\n',n) end end

3. Realiceunafuncinqueaproximelafuncinsenopormediodesupolinomiodadopor laseriedeTaylor.Lasvariablesdeentradadelprogramaserelvalordexaevaluary elvalordelgradodelpolinomio.


% seno_discusion1904.m function y=seno_discusion1904(x,n) % Entradas: % n = es el grado del polinomio % x = es el valor a evaluar en el polinomio seno % Salidas: % y = es la evaluacin de x en el polinomio

N = round(n/2); suma=0; for i = 1 : N term = x^(2*i-1)/factorial((2*i-1)); term = term*(-1)^(i+1); suma=suma+term; end y = suma;

4. Realice un programa que le pida al usuario que ingrese el grado del polinomio de Taylorqueaproximaalseno,n.elvalordexquedeseaaproximar. La salida del programa ser una serie de mensajes en pantalla que muestran la comparacin de la funcin sin(x) de matlab, el valor de la aproximacin P(x) por el polinomio de Taylor y el error absoluto cuando se van incrementando el grado del polinomio. Luegoenunamismafiguraempleesubplotparaqueenunagrficaploteesin(x)yP9(x) enelintervalox=[02pi].Empleepasosdepi/64. Y en otro grfico plotee el error absoluto dado por sin(x) y P(x) vs ir agregando trminosalaaproximacin.
% comparaseno_discusion1904.m disp('Este programa calcula seno(x) mediante una aproximacin por serie de taylor') disp(' Y la compara con la funcin sin(x) de matlab') n=input('Ingrese el grado del polinomio = '); x=input('Ingrese el valor de x = ');

for i = 1 : n y(i)=seno_discusion1904(x,i);% empleando la funcion que ya he creado err(i)=abs(sin(x)-y(i));% calculando el error absoluto end sal=[x*ones(1,length(y),1);[1:n];y;err]; % creando la matriz de respuestas fprintf('El seno(%6.4f) con una aproximacin de grado %2.0f es % 8.5f con un error de %5.3e\n',sal) % graficando subplot(2,1,1) t=0:pi/64:2*pi; plot(t,sin(t),'b',t,seno_discusion1904(t,n),'r') legend('Funcin sin(x)','Funcin P(x)') title('Comparacin de funciones') xlabel('x') ylabel('f(x)') subplot(2,1,2) plot(err) title('Variacin del error') xlabel('Grado del polinomio') ylabel('Error absoluto')

También podría gustarte