Está en la página 1de 3

UNIVERSIDAD MARIANA

PROGRAMA: Ingeniería de procesos


CURSO: Métodos computacionales
Docente: Laura Márquez

TALLER DIFERENCIACIÓN NUMÉRICA

Nombres:
1. Sebastian Hidalgo Erazo 2. Gerson Martinez 3. Jaider Arévalo

4. Jaime Bolaños 5. Yenifer Gaviria 6. Juan Quelal

Código de Matlab

% Definir los puntos x e y


x = 0:0.1:1; % Vector de puntos x
y = sin(2*pi*x); % Vector de puntos y correspondientes

% Calcular la derivada numérica hacia adelante


h = x(2) - x(1); % Paso de diferenciación
n = length(x);
y_prima = zeros(1, n); % Vector para almacenar las derivadas

for i = 1:(n-1)
y_prima(i) = (y(i+1) - y(i)) / h; % Fórmula de diferenciación hacia adelante
end

% La derivada en el último punto se calcula usando la diferencia hacia atrás


y_prima(n) = (y(n) - y(n-1)) / h;

% Graficar los resultados


figure;
plot(x, y, 'b-', x, y_prima, 'r--');
title('Diferenciación numérica hacia adelante');
xlabel('x');
ylabel('y, y''');
legend('Función original', 'Derivada numérica');
% Estimación de la derivada en el último punto usando la diferencia hacia atrás
derivada(end) = (y(end) - y(end-1)) / h;

Este código calcula la derivada numérica hacia adelante de la función sin(2*pi*x) utilizando la fórmula de
diferenciación hacia adelante para todos los puntos, excepto el último, donde se utiliza la diferencia hacia atrás.
Los resultados se grafican para visualizar la función original y su derivada numérica.
Explication

% Definir los puntos x e y


x = 0:0.1:1; % Vector de puntos x
y = sin(2*pi*x); % Vector de puntos y correspondientes

Estas líneas definen los vectores x e y que representan los puntos de la función sin(2*pi*x). El vector x contiene
valores uniformemente espaciados desde 0 hasta 1 con un paso de 0.1.

% Calcular la derivada numérica hacia adelante


h = x(2) - x(1); % Paso de diferenciación
n = length(x);
y_prima = zeros(1, n); % Vector para almacenar las derivadas

Estas líneas preparan el cálculo de la derivada numérica. La variable h representa el paso de diferenciación, que es
la distancia entre dos puntos consecutivos de x. n almacena la longitud del vector x. y_prima es un vector
inicializado con ceros que almacenará las derivadas numéricas calculadas.

for i = 1:(n-1)
y_prima(i) = (y(i+1) - y(i)) / h; % Fórmula de diferenciación hacia adelante
end
Este bucle for calcula la derivada numérica hacia adelante para todos los puntos, excepto el último. La fórmula de
diferenciación hacia adelante es (y(i+1) - y(i)) / h, donde y(i+1) es el valor de la función en el siguiente punto, y(i)
es el valor en el punto actual, y h es el paso de diferenciación.

% La derivada en el último punto se calcula usando la diferencia hacia atrás


y_prima(n) = (y(n) - y(n-1)) / h;

Esta línea calcula la derivada numérica en el último punto utilizando la diferencia hacia atrás, ya que no hay un
punto siguiente disponible para utilizar la fórmula de diferenciación hacia adelante. La fórmula utilizada es (y(n) -
y(n-1)) / h, donde y(n) es el valor de la función en el último punto, y(n-1) es el valor en el punto anterior, y h es el
paso de diferenciación.

% Graficar los resultados


figure;
plot(x, y, 'b-', x, y_prima, 'r--');
title('Diferenciación numérica hacia adelante');
xlabel('x');
ylabel('y, y''');
legend('Función original', 'Derivada numérica');
% Estimación de la derivada en el último punto usando la diferencia hacia atrás
derivada(end) = (y(end) - y(end-1)) / h;

Estas líneas crean una nueva figura y grafican la función original y y la derivada numérica y_prima calculada. La
función original se grafica con una línea azul continua ('b-'), mientras que la derivada numérica se grafica con una
línea roja discontinua ('r--'). Se agregan un título, etiquetas en los ejes y una leyenda para identificar las líneas.

También podría gustarte