ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

Métodos numéricos , Universidad de Medellín.


Enviado por   •  30 de Septiembre de 2018  •  Prácticas o problemas  •  2.459 Palabras (10 Páginas)  •  88 Visitas

Página 1 de 10

(28 de Abril de 2017)

Métodos numéricos , Universidad de Medellín.

Práctica de Matlab.

Resumen— La  siguiente práctica , contiene detalladamente la resolución de problemas numéricos que abarquen una diferenciación, integración o solución de ecuaciones diferencial. Se exponen cada uno de estos métodos y sus variantes. Con algoritmos hechos con el programa Matlab para ayudar y/o optimizar la resolución de dichos problemas.

 

  1. DIFERENCIACIÓN.

En muchos casos, cuando se conoce la función se puede obtener una derivada perfectamente, aplicando las formulas ya conocidas en cursos anteriores, para lograr resolverla. Pero, cuando tenemos un conjunto de datos; para lograr aproximar la derivada  a un modelo que se ajuste a nuestros datos usamos, los siguientes métodos que se describen a continuación.

1.1 BASE TEORICA.

En los cursos de cálculo se define la derivada de ƒ en x0 como.

[pic 1]
Una manera razonable de aproximar la derivada es

[pic 2] (1).

Para el caso de una función lineal, ƒ(x) = ax + b, la aproximación dada por la expresión (1) resulta exacta para cualquier valor de h distinto de cero. Pero para cualquier función ƒ en general no siempre resulta exacta.

A continuación se hace una estimación del error asociado a la aproximación dada por (1) usando el teorema de Taylor con un polinomio de grado 1.


[pic 3] 
si 
x = x0 + hx - x0 = h, y reemplazando en (2) resulta:

[pic 4]

si se despeja ƒ’(x0) entonces:

[pic 5] (3).

e puede obtener otra fórmula para aproximar la derivada usando la ecuación (2),

[pic 6]

si x = x0 – hx – x0 = -h, reemplazando el valor de x se tiene :

[pic 7]
si se despeja 
f ´(x0) resulta:

[pic 8] (4)

A la aproximación (1) se le llama fórmula de diferencia hacia delante y a la aproximación dada por (4) se le conoce como fórmula de diferencia hacia atrás, ambas fórmulas presentan el mismo error. Se puede obtener otra fórmula para aproximar la derivada con un error que involucre h2 usando un polinomio de grado 2 así:

[pic 9]

Si se reemplaza x = x0 + h y x = x0 – h en (5) resulta:

[pic 10]

Si se restan las anteriores ecuaciones, se tiene:

[pic 11]

Ahora se despeja ´(x0) ,

[pic 12]    (6) 

[pic 13]

La anterior fórmula para aproximar la derivada de ƒ se la conoce como diferencia centrada.

De manera análoga a la interpolación polinómica, el uso de más puntos en la evaluación de la derivada producirá mayor exactitud; aunque esto implica mayor cantidad de evaluaciones funcionales y aumento de error de redondeo. A continuación se muestra una tabla con las formulas requeridas para el cálculo de  primeras y segundas derivadas dado un número de puntos.

[pic 14](7) 

Y sus correspondientes para la segunda derivada

[pic 15](8)

1.2 ALGORITMO EN MATLAB

clear all

clc

% % Esquemas de Diferencias Finitas Adelante, Atrás y Central para la Primera y segunda derivada

disp('*************************************************************************************');

disp('*******************************Calculo de diferencias finitas*******************************');

disp('*************************************************************************************');

syms x;

funcion=input('Ingrese la función F(x):  ');

x0=input('Ingrese el punto x0 a calcular:  ');

h=input('Ingrese tamaño de paso (h):  ');

%% Convertimos la función escrita como texto a un modo que matlab la entienda

f=inline(char(funcion));

%% Derivamos la funcion

DerivadaF=diff(funcion,x);

DerivadaF2=diff(DerivadaF,x);

Df=inline(char(DerivadaF));%Primera Derivada

Df2=inline(char(DerivadaF2));% Segunda Derivada

%% Primera Derivada  diferencias finitas progresivas.

Dfprimera2PuntosP=(f(x0+h)-f(x0))/h

Dfprimera3PuntosP=(-3*f(x0)+4*f(x0+h)-f(x0+2*h))/(2*h)

%% Primera Derivada  diferencias finitas centradas.

Dfprimera2PuntosC=(f(x0+h)-f(x0-h))/(2*h)

Dfprimera4PuntosC=(f(x0-2*h)-8*f(x0-h)+8*f(x0+h)-f(x0+2*h))/(12*h)

%% Primera Derivada  diferencias finitas regresivas.

Dfprimera2PuntosR=(f(x0)-f(x0-h))/(h)

Dfprimera3PuntosR=(f(x0-2*h)-4*f(x0-h)+3*f(x0))/(2*h)

%% Calculamos la derivada real.

DerivadaReal=Df(x0);

%% Errores

PrimeraDerivadaAproximada=[Dfprimera2PuntosP Dfprimera3PuntosP Dfprimera2PuntosC Dfprimera4PuntosC Dfprimera2PuntosR Dfprimera3PuntosR];

ErrorAbsoluto=abs(PrimeraDerivadaAproximada-DerivadaReal)

...

Descargar como (para miembros actualizados)  txt (21.5 Kb)   pdf (778.6 Kb)   docx (291.1 Kb)  
Leer 9 páginas más »
Disponible sólo en Clubensayos.com