FACULTAD DE CIENCIAS EXACTAS Y TECNOLOGIA
Por M. Sc. Rodolfo Arana Gonzales
Santa Cruz de la Sierra 2018
MAT205 METODOS NUMERICOS
M. Sc. Rodolfo E. Arana G.
Es la cantidad de cifras que se pueden utilizar con seguridad o en forma confiable. Se calcula como el número de cifras seguras más una cifra con incertidubre. Ver ejemplos La se refiere a que tan cercano está un valor calculado (o medido) respecto del “valor verdadero ”. La se refiere a que tan cercanos estan entre si los distintos valores calculados(o medidos). Ver ilustracion Ver video de ExPre ERRORES Y TIPOS DE ERRORES Un error es la incertidumbre en el resultado de una medida. Puede deberse a la precisión del instrumento, a la persona que mide, o al método de medición. Error absoluto (o error verdadero E t ) Página 1
M. Sc. Rodolfo E. Arana G.
MAT205 METODOS NUMERICOS
= | |
Error relativo fraccional =
Error relativo porcentual = × 100
Dado que error verdadero requiere de valor verdadero (que normalmente no se conoce), entonces la expresión para εr se sustiruye por εa que significa error relativo aproximado y está dada por: = × 100
Es decir: Error relativo aproximado ó ó = | × 100| ó
En el proceso de cálculo εa se toma en valor absoluto y se lo compara con una tolerancia o error aceptable previamente fijado εs. Por tanto, en la práctica, los cálculos se repiten hasta que: | | < Página 2
MAT205 METODOS NUMERICOS
M. Sc. Rodolfo E. Arana G.
ERRORES DE REDONDEO Y TRUNCAMIENTO Desde el punto de vista del uso de una computadora, estos errores se pueden definir de la siguiente manera. El redondeo está referido a la definición de la cantidad de cifras significativas de un número. El redondeo puede ser por defecto o por exceso. El truncamiento se refiere a la capacidad de representación de una cantidad de real que tiene una computadora. En el caso de la aproximación de funciones por medio de la serie de Taylor, el error de truncamiento se refiere al resto de términos de la serie que no se toma en cuenta en la aproximación de la función. SERIE DE TAYLOR
Página 3
M. Sc. Rodolfo E. Arana G.
MAT205 METODOS NUMERICOS
Ver video SeTay
Error de truncamiento en funciones Se trata del truncamiento de términos que hace la serie de Taylor en la aproximación de funciones trascendentes. Este error viene dado por la siguiente fórmula:
Ver video ErrTay EJEMPLOS SOBRE CIFRAS SIGNIFICATIVAS
Página 4
MAT205 METODOS NUMERICOS
M. Sc. Rodolfo E. Arana G.
Página 5
MAT205 METODOS NUMERICOS
M. Sc. Rodolfo E. Arana G.
PRECISIÓN Y EXACTITUD
Página 6
MAT205 METODOS NUMERICOS
M. Sc. Rodolfo E. Arana G.
Encontrar las raices (o soluciones) de una ecuación significa determinar los valores que hacen cero a la ecuación, es decir; hallar los puntos sobre el eje X donde la gráfica de la ecuación “corta” a este eje.
Página 7
M. Sc. Rodolfo E. Arana G.
MAT205 METODOS NUMERICOS
En general, si f(x) es real y continua en el intervalo [x l, xu] y f(xl) y f(xu) tienen signos opuestos; esto es: f(xl) f(xu) < 0 Entonces hay al menos una raiz real entre x l y xu. Esto significa que la función cambia de signo en ese intervalo.
Página 8
M. Sc. Rodolfo E. Arana G.
MAT205 METODOS NUMERICOS
El método de la bisección consiste en dividir el intervalo en dos partes para determinar un punto medio ( x r ) y evaluar la función en ese punto. =
Página 9
MAT205 METODOS NUMERICOS
M. Sc. Rodolfo E. Arana G.
float biseccion(float xl, float xu, float es, int imax, TListBox *lista) { float ea, xr, xa; int iter=0; lista->Clear(); lista->Items->Add(" iter xl xu xr ea"); lista->Items->Add("======================================"); xa = xr; do { xr = (xl+xu)/2; // formula de la Biseccion lista->Items->Add(IntToStr(iter) + " " + FormatFloat(",0.000000", xl) + " " + FormatFloat(",0.000000", xu) + " " + FormatFloat(",0.000000", xr) + " " + FormatFloat(",0.000000", ea)); if ((f(xl)*f(xr)) < 0) xu = xr; else xl = xr; iter++; ea = (xr-xa)/xr*100; xa = xr; } while (( fabs(ea) > es ) && (iter < imax)); return xr; }
Página 10
M. Sc. Rodolfo E. Arana G.
MAT205 METODOS NUMERICOS
Utilizando triángulos semejantes entre los triángulos sombreados, tenemos la siguiente relación: ( ) ( ) =
de esta relación se obtiene la fórmula de la regla falsa:
=
( )( ) ( ) ( )
Página 11
MAT205 METODOS NUMERICOS
M. Sc. Rodolfo E. Arana G.
El algoritmo para el método de la regla falsa es similar al de la bisección. Programa Regla Falsa float reglaFalsa(float xl, float xu, float es, int imax, TRichEdit *rich) { float ea, xr, xa; int iter=0; rich->Clear(); rich->Lines->Add("iter xl xu xr ea"); rich->Lines->Add("====================================="); xa = xu; do { xr = xu - (f(xu)*(xl-xu))/ (f(xl)-f(xu)); // formula de la Regla Falsa rich->Lines->Add(IntToStr(iter) + " "+ FormatFloat(",0.000000", xl) + " "+ FormatFloat(",0.000000", xu)+ " "+ FormatFloat(",0.000000", xr) + " "+ FormatFloat(",0.000000", ea)); if ((f(xl)*f(xr)) < 0) xu = xr; else if ((f(xl)*f(xr)) > 0) xl = xr; else ea = 0; ea = (xr-xa)/xr*100; xa = xr; iter++; } while ((fabs(ea) > es) && (iter < imax)); return xr; }
Página 12
M. Sc. Rodolfo E. Arana G.
MAT205 METODOS NUMERICOS
Se denominan métodos abiertos porque no requieren un intervalo para buscar la raiz. En su lugar utilizan un valor xo que puede ser cualquier valor.
Este método consiste en obtener una fórmula iterativa a partir de la función original f(x), tal que: x = g(x) donde g(x) es el lado derecho del “despeje” de la función
original f(x) . Se toma un punto fijo original x 0, a partir del cual se itera. + = ( ) Por ejemplo, el valor inicial x 0 se puede definir tomado un punto medio entre dos valores donde se supone está la raiz (puede usarse un gráfico). Las condiciones necesarias son:
La función g(x) debe ser continua en el entorno de x 0 Debe ser derivable en x 0. Debe cumplirse que - 1 ≤ g’(x 0 ) ≤ 1
Página 13
MAT205 METODOS NUMERICOS
M. Sc. Rodolfo E. Arana G.
float puntoFijo(float x0, float es, int imax, TListBox *lista) { float ea=0, xi, xa; int iter=0; lista->Clear(); lista->Items->Add(" i xi Ea"); lista->Items->Add("================="); lista->Items->Add(IntToStr(iter) + " " + FormatFloat(",0.0000", x0) + " " + FormatFloat(",0.0000", ea)); xa = x0; xi = x0; do { xi = g(xi); // formula del punto fijo lista->Items->Add(IntToStr(iter) + " " + FormatFloat(",0.0000", xi) + " " + FormatFloat(",0.0000", ea)); ea = (xi-xa)/xi*100; xa = xi; iter++; } while ((fabs(ea) > es) && (iter < imax)); return xi; }
Página 14
M. Sc. Rodolfo E. Arana G.
MAT205 METODOS NUMERICOS
Consideremos la recta secante que pasa por los puntos (xi, f(xi)) y (xi-1, f(xi-1), cuya ecuación está dada por la fórmula: ( ) = ( )
Donde m es la pendiente de la recta entre los puntos dados, cuyo valor es: (− ) ( ) = −
Si consideramos que cuando la recta corta al eje, tenemos una nueva aproximación x i+1 , luego y vale cero. Reemplazamos m en la ecuación orginal y tomamos a x i+1 como una nueva aproximación. Finalmente despejamos x i+1 Página 15
MAT205 METODOS NUMERICOS
M. Sc. Rodolfo E. Arana G.
La fórmula queda así: ( ) (− ) + = (−) ( )
El algoritmo para este método es similar al del punto fijo Programa de método de la secante float secante(float x0, float x1, float es, int imax, TRichEdit *lista) { float ea=1, x2; int iter=0; lista->Clear(); lista->Lines->Add(" iter x0 x1 x2 ea"); lista->Lines->Add("=================================="); do { x2 = x1 -(f(x1)*(x0-x1))/(f(x0)-f(x1)); // formula de la secante if (x2 != 0) ea = (x2-x1)/x2 *100; lista->Lines->Add(IntToStr(iter) + " "+ FormatFloat(",0.000000", x0) + " " + FormatFloat(",0.000000", x1) + " "+ FormatFloat(",0.000000", x2) + " " + FormatFloat(",0.000000", ea)); x0 = x1; x1 = x2; iter++; } while ((fabs(ea) > es) && (iter < imax)); return x2; }
Página 16
MAT205 METODOS NUMERICOS
M. Sc. Rodolfo E. Arana G.
Página 17
M. Sc. Rodolfo E. Arana G.
MAT205 METODOS NUMERICOS
El método de Newton-Raphson se deduce a partir de la siguiente interpretación geométrica (un método alternativo está basado en la serie de Taylor).
De la figura, se tiene que la primera derivada en x es equivalente a la pendiente: ( ) ′( ) = +
de donde se obtiene la fórmula iterativa:
+
( ) = ′( ) Página 18
MAT205 METODOS NUMERICOS
M. Sc. Rodolfo E. Arana G.
FUNCION Newton(x0, es, imax) xi x0 iter 0 HACER xant xi xi xi – f(xi)/df(xi) iter iter + 1 SI xi ≠ 0 ENTONCES ea =(xi – xant) / xi * 100 FIN SI SI ea < es O iter ≥ imax SALIR FIN HACER RETORNAR xi FIN FUNCION
Página 19
MAT205 METODOS NUMERICOS
float {
M. Sc. Rodolfo E. Arana G.
(float x0, float es, int imax, TRichEdit *rich) float ea, xi, xant; int iter; xi = x0; iter = 0; rich->Clear(); rich->Lines->Add("iter xi-1 xi ea"); rich->Lines->Add("============================="); do { xant = xi; xi = xi - f(xi)/df(xi); // formula de Newton iter = iter + 1; if (xi != 0) ea = fabs((xi-xant)/xi) *100; rich->Lines->Add(IntToStr(iter) + " "+ FormatFloat("###,##0.00000", xant) +" "+ FormatFloat("###,##0.00000", xi) + " "+ FormatFloat("###,##0.00000", ea)); } while (!((ea < es) || (iter > imax))); return xi;
}
Página 20
MAT205 METODOS NUMERICOS
M. Sc. Rodolfo E. Arana G.
1. Chapra, Steven y Canale, Raymond. Métodos Numérios para Ingenieros. Mc Grw-Hill. 2. Nakamura, Shoichiro. Métodos Numéricos Aplicados con Software. PrenticeHall.
Página 21