INSTITUTO POLITECNICO NACIONAL
ESCUELA SUPERIOR DE CÓMPUTO
1
PROGRAMACION II
OBJETIVO: el estudiante analizara los principales algoritmos para emplear
técnicas numéricas básicas, mismas que deberá programar para aplicar sus
conocimientos en el uso del lenguaje “c” y así implementar los algoritmos.
CONTENIDO:
Unidad I: Aritmética de punto flotante y convergencia de algoritmos.
1.1Errores.
1.2Números de punto flotante.
1.3Programación de errores.
Unidad II: Algoritmos para dar solución a ecuaciones de una variable real.
2.1 Algoritmos de búsqueda de raíces.
2.2 Raíces de polinomios.
Unidad III: Algoritmos de interpolación.
3.1 Algoritmos de interpolación
3.2 Ajustes de curvas.
Unidad IV: Algoritmos para derivación e integración numérica.
4.1 Algoritmos para derivación.
4.2 Algoritmos de integración simple.
4.3 Algoritmos de integración compuesta.
Unidad V: Algoritmos para dar solución numérica a ecuaciones diferenciales
ordinarias.
5.1 Aspectos numéricos de los algoritmos por métodos numéricos.
5.2 Algoritmos basados en técnicas iterativas.
Unidad VI: Algoritmos para dar solución numérica a ecuaciones diferenciales
ordinarias.
6.1 Algoritmos por método de Taylor.
6.2 Algoritmos de Runge Kutta.
2
UNIDAD I: ARITMETICA DE PUNTO FLOTANTE
INTRODUCCION:
Métodos Numéricos son técnicas mediante las cuales es posible formular
problemas de tal forma que pueden resolverse usando operaciones aritméticas,
es decir descomponen el problema en un gran número de operaciones simples.
Ejemplo:
2007340039
X43
---------------
6022020117 20 multiplicaciones
8029360136 12 sumas
---------------
86315621677
• Cifras significativas o dígitos significativos:
Son el número de dígitos que pueden ser usadas con confianza es decir,
la cantidad de números que se designan formalmente la confiabilidad de
un valor numérico.
• Precisión:
Se refiere al número de cifras significativas que representan una
cantidad a la extensión de lecturas repetitivas de un instrumento que
mide una propiedad física.
• Exactitud:
Se refiere a la aproximación de un número o de una medida de un valor
al valor verdadero que presenta.
• Error:
Los métodos numérico empleados en la computación para obtener una
solución de un proceso real son solo una aproximación por lo que
siempre existe un error o una discrepancia, al valor verdadero de una
solución y el valor obtenido por un algoritmo computacional. Los errores
se pueden deber a las aproximaciones matemáticas que se realizan en el
cálculo, y pueden ser de dos tipos por truncamiento y por redondeo.
Para ambos tipos de errores la relación ente el valor exacto y el valor
aproximado esta dado por la siguiente ecuación
X´= x+ex
X´= valor aproximado
X = valor exacto
3
ex= error absoluto
• Error absoluto:
Es la diferencia entre el valor verdadero ya aproximación al valor
verdadero.
ex= |x´-x|
• Error relativo:
Es el cociente del error absoluto entre el valor verdadero. Es una forma
de normalizar los errores.
er= ex/x
Ejemplo:
Supóngase que se tiene que medir la longitud de un puente y sus remaches,
obteniéndose una dimensión de 9,999 cm para el puente y 9 cm para su
remache. Si los valores verdaderos son 10,000 cm para el puente y 10 cm para
el remache
a) Calcular el error absoluto.
b) Calcular el error relativo.
Error absoluto para el remache
℮x remache = |9 – 10| = 1 cm
℮x puente = |9,999 – 10,000|= 1 cm
Error relativo
℮x remache = 1cm/10cm = 0.1 ℮xremache = 10 %
℮x puente = 1/10,000 = 0.001 ℮xpuente = 0.01%
4
NUMEROS DE PUNTO FLOTENATE
En cálculos de ingeniera el intervalo de números pueden ser muy grandes, por
lo que se pierde precisión y exactitud sise emplean instrumentos de calculo
que pueda contener un número menor de cifras significativas.
Para representar ese intervalo de números grandes se usa la notación
científica.
1,000 1 x 103 I.E3
0.001 1 x 10 -3 I.E-3
n = números que se desea representar
n = ± m x R±l
n = ± m E ±l en computación
m = mantisa o fracción
R = base del sistema numérico
e = exponente
L a recta de los números reales que pueden ser representados en una
computadora se divide en las siguientes 7 regiones.
1.- Números negativos grandes menores que – 0.999 X 1099 se llama
desbordamiento negativo.
2.- Números comprendidos entre – 0.999 X 1099 y – 0.100 X 10-99 son los
números negativos representables.
3.- Números negativos pequeños con una magnitud menor a – 0.100 X 10-99
son el subdesbordamiento negativo.
4.- cero
5.- Los números positivos con una magnitud menor a – 0.100 X 10-99 es el
subdesbordamiento positivo.
6.- Números positivos entre – 0.100 X 10-99 y – 0.999 X 1099 son los números
representables.
7.- Los números positivos grandes mayores a – 0.999 X 1099 se lamman
desbordamiento positivo.
Estanboard de aritmética de punto flotante IEEE 754-1985
Universidad de Berkeley- William Kahan.
Norma en México NMX - acuerdo industriales
NOM
5
El estándar define tres formatos.
Precisión sencilla con 32 bits, doble precisión con 64 bits y precisión extendida
de 80 bits. Los formatos de precisión simple y doble emplean la base dos para
fracciones y notación de exceso para exponentes. Los formatos se muestran en
las siguientes figuras.
Precisión sencilla
Precisióndoble
Ambos formatos comienzan con un bit de signo para el número en su totalidad:
0 para el positivo y el 1 para el negativo. Luego viene el exponente que usa
exceso 127 para el caso de la presentación sencilla y exceso de 1023 para el
caso de precisión doble. Los exponentes mínimo (0) y máximo (255 y 254)
respectivamente) no se usa los números normalizados tienen usos especiales.
Luego están las fracciones de 25 y 52 bits respectivamente.
CONCEPTO PRESICION PRESICION PRESICION
SENCILLA DOBLE EXTENDIDA
SIGNO 1 1 1
EXPONENTE 8 11 15
FRACCION 23 52 64
TOTAL 32 64 80
SISTEMA DE EXCESO EXCESO 1023 EXCESO 16,383
EXPONENTE
BASE 2 2 2
INTERVALO DEL -126 A +127 -1022 A -16,382 A +16,383
EXPONENTE +1023
N° NORMALIZADO 1.755-38 2.225-308 34931
MAS PEQUEÑO
N° NORMALIZADO 1.70138 8.988307 64931
MAS GRANDE
N° DIGITOS 7 16 19
Presentación de la IEEE 754
6
NORMALIZADO
DESNORMALIZADO
CERO
INFINITO
NINGUN NÚMERO
EJERCICIO:
Convertir al formato IEEE 754 1985, precisión sencilla.
1) 6.12510= 110.001
6/2 = 3 0 3/2 = 1 1 ½=01
0.125 * 2 = 0.256 0 0.256 * 2 = 0.5 0 0.5 * 2 = 1.0
1
Signo = 02 (positivo)
Exponente = 1.1001 X
Exponente = 1.1001 X 22
= 2 + 127 = 12910= 1000 00012
Fracción = 10012
IEEE =
7
PROGRAMA PARA LA CONVERSION IEEE 754 1985 A DECIMAL EN BORLAND
C++
/decimal IEEE/
Void_main (){
Float *a;
Printf
Scanf (“%f”, & a);
printf(“IEEE = %p (hexa)”, a);
}
/IEEE decimal/
Void main () {
Int * a;
Float *s;
Printf
Scanf (“%x%x”, a++,a);
S= (float *)a;
Printf (“DEC=%g”, *s);
}
OPERACCIONES ARITMETICAS CON LA NORMA IEEE 754.
SUMA.
1) Son exponentes iguales .
2) Son números des normalizados.
1 X 101 + 1 X 102 = 11010
RESTA.
Cuando se restan dos números casi iguales se produce un error relativo grande.
División.
8
Cuando se puede dividir entre un número muy pequeño puede causar sobre
flujo.
Errores de salida.
Se puede presentar al emplear un formato erróneo al momento de realizar una
impresión.
Void main (){
float a = 3.1215326534, b = 0.0000006;
pintf (“%f, %f, %1.3f, %1.3f, %g, %g, a,b,a,b,a,b”);
*propagación de errores
Suma.
Se presentan errores porque hay una longitud finita de los números.
Error|(a’+b´)-(a+b)|
Resta Error |(a’-b´)-(a-b |
Multiplicación el error depende del número de operaciones
División suma y resta que se realicen
Inestabilidad.
La inestabilidad en un cálculo es un fenómeno que se produce cuando los
errores de redondeo individuales se propagan a través del cálculo. Un problema
que es inherentemente inestable se dice que está mal condicionado.
9
UNIDAD 2: SOLUCION DE ECUASIONES NO LINEALES.
Solución de problemas --- Método analítico grafico numérico.
En la práctica de la ingeniera y ciencias es muy frecuente tener que resolver
ecuaciones de la forma f(X) =0, es decir, es necesario conocer los valores de X
que hacen cero a la ecuación. A estos valores se les conoce como ceros o
raíces de la ecuación. En general se aplican tres métodos.
Método numérico analítico.
Consiste despejar la variable X en función de f(X).
Ecuación cuadrática
x=-b±b2-4ac2a
Método numérico grafico.
Se traza la grafica de f (X) en fusión de X y se buscan los puntos donde la curva
corta al eje X.
Este método presenta las siguientes inconveniencias:
La grafica resulta difícil de elaborar.
Los valores obtenidos no son muy precisos y es
posible que las raíces nunca se encuentren.
Método numérico.
Generan una sucesión de valores que si aproximan a la solución son métodos
más generales que los analíticos y más precisos que los gráficos.
Teorema: Cambio de signos.
Si un intervalo cerrado [a,b] la función f(X) es continua y además f(a) tiene
signo opuesto a f(b), es decir, existe un cambio de signo, entonces por lo
menos existe una raíz en el intervalo [a,b]. Si no se cumple no dice nada del
número de raíces.
Teorema:
Toda ecuación algebraica admite al menos una raíz real o compleja.
Corolario:
Toda ecuación algebraica de grado n admite n raices reales o complejas.
10
Teorema: Raices complejas.
Si una ecuacion algebraica admite al numero (a+bi) como su raiz, su complejo
conjugada (a-bi) tambien lo es.
Regla de los signos o de Descartes. Se emplea para determinar el numero de
raices positivas, negativas o nulas de una ecuacion algebraica. Si la ecucion
carece de temino independiente pero tiene el termino de primer grado posee
una raiz nula, si carece del termino independiente y del termino de primer
grado pero posee el termino de segundo grado tiene dos raices nulas, etc.
El numero de raices positivas de una ecuacion f(X) = 0 es igual al numero de
cambios de signo en el polinomio o es menor que este en un numero par. Para
raices negativas es igual al numero de cambios de signo de la funcion f(-X) = 0
ó es menor que ese numero en un numero par.
Ejemplos:
Determinar el nimer de raices nulas, positivas y negativas de:
3x3-6x+7= 0
Analisis:
a) Nulas.
Tiene cero raices nulas porque tiene el termino independiente.
b) Positivas.
[+,-,+] => dos cambios de signo
Tiene 2 o´0 raices positivas
c) Negativas.
F(X)= 0 3x3-6x+7= 0
[-,*,+] => 1 cambio de signo
Tiene 1 o´-1 raices negativas
Conclusiones:
La ecuacion tiene las siguientes raices: 0 nulas, 2 positivas y una negativa.
Metodos de biseccion.
Los metodos de biseccion se conocen tambien como metodos por intervalos
pues necesitan de dos valores para poder iniciar la busqueda de las raices. Uno
de los metodos mas antiguos se conoce como Metodo Balzano, metodo de
corte binario o metodo de particion en dos intervalos iguales, es un metodo de
busqueda incremental en donde el intervalo siempre se divide en dos. Si la
funcion cambia de signo sobre el intervalo, se evaua el valor de la funcion en el
punto medio. La posicion de la raiz se determina situandola en el punto medio
del subintervalo dentro del cual ocurre un cambio de signo. Este proceso se
repite hasta obtener una mejor aproximacion.
La estimacion del error relativo (er) del metodo de la biseccion se calcula de la
siguiente forma.
11
er= Xnueva-XanteriorXnueva
Criterios de paro.
1.- limitar el numero de iteracciones.
2.- en base al error relativo.
3.- si se llega a la solucion.
Ejemplo:
Determinar la raiz para f(X) = ex- x con un intervalo de inicio [0,1]
1) a=0 y b=1
x1a+b2= 0+12= 0.5
f(x1) = f(0.5) = e-0.5- 0.5 = 0.1065 => no hubo cambio de signo
nuevo intervalo [.1065,1]
∴a= 0.5 b=1
2) x2 = a+b2 = 0.5+12 = 0.75
f(x)2 e-.75- .75 = - 0.277=> cambio de signo
er = |.75- .5.75| = 33.33%
3) Hubo cambio de signo => [.5, .75]
x3= a+b2 = 0.5+.752 = 0.625
f(x)3= -0.08974
er= |.625-0 7.5.625| = 20%
4) No hubo cambio de signo [0.5, 0.625]
a = -0.5 b= 0.625
x4a+b2= 0.5+0.6252 = 0.5625
f(x)4 = 0.00728
Er = 11.11% => si hubo cambio de signo
5) [0.5625, 0.625]
x5 = 0.59375
f(x)5 = -0.04149 raiz => x3 = 0.59375
Er = 5.26% x0 = 0.56714329
PROGRAMA EN C PARA EL EMTODO DE BISECCION
12
# include math.h
folat f (float x){
return (exp(-x)-x);
}
void biseccion (float a, float b, float ex){
float xa,xn,fx,e;
int i;
xa= (a+b)/2;
for (i =0; i <100; i ++){
fx = f(xa);
If (fx ==0.){
printf (“raiz =%g ”, xa);
return;
}
if (fx <0.) b=xa;
else a= xa ;
xn = (a+b)/2;
If (xa! =0.){
e= fabs ((xn-xa)/xn) *100;
if (e<er){
printf (“raiz = %g “, xa);
return;
}
}
Xa = xn;
Printf (“la raiz no se encontro”);
}
Void main (){
Float a,d,e;
Scanf(%f %f %f “, &a, &b, &e);
}
13
METODO DEL PUNTO FIJO.
Es un metodo abierto, el cual requiere de solo un valor, para iniciar la
busqueda.
Si el metodo converge (se acerca a la raiz), lo hace mas rapido que el metodo
de la biseccion pero si no es probable que se alege.
F(x) = 0 =<> xi = g(xi –x)
Er =X1-Xi-1Xi
Ejemplo:
Hallar la raiz de f(X) = e-x – X tomando x0 =0
e-x- x
e-x = x
1) x1= e-0= 0 er = 1-0 1=100%
2) x2= e-1 = .3678 er = 0.3678-1 0.3678*100=171.88%
3) x3= e-.3678= .6922 er = .6922-0.3678 .6922*100=46.87%
4) x4= e-.6922 = 0.5004 er = .5004-06922..5004*100=38.327%
5) x5 er = 11.14%
6) x6 er = 5.9%
7) x7 er = 3.48%
METODO DE NEWTON -- RAPHSON.
Resolver una ecuasion de la forma f(X) = 0
F (Xi + 1 ) = f (Xi) + df (Xi)dXi (Xi + 1 – Xi) + d2f(Xi)dXi2 (Xi+1-Xi)22! + ……
F (Xi +1) = f (Xi) + df (Xi)dXi (Xi + 1 – Xi)
f (Xi+1) = f (Xi) + f1(Xi) (Xi + 1 – Xi)
fXi+1- f (Xi)f1(Xi) = (Xi +1 –Xi)
Xi +1 = fXi+1- f (Xi)f1(Xi) + Xi
f (Xi) + f1(Xi) (Xi + 1 – Xi) = 0
f1 (Xi)(Xi + 1 – Xi) = - f (Xi)
Xi +1 = Xi-fXif1(Xi)
Xi + 1 = Xi - -fXif1(Xi)
er = Xi+1-XiXi+1
Ejemplo: Determinar la raiz para f(x) = e-x- x para x0 =0
f´ (X) = ex-1
1) f (x0)=f 0= 1 x1= x0- f(x0)f1( x0)=0 12 = 0.5
14
er = 0.5-0 0.5 * 100 = 100%
2) er = 0.5662-0.5 0.5662 = 11.70%
3) er = 0.5671-0.5662 0.5671 = 0.1662%
METODO DE LA SECANTE.
f´(x) = f (Xi +1) – f (Xi)Xi-1-Xi
Xi +1 = Xi Xi-f(Xi )fXi-1 – f (Xi)Xi-1-Xi
Xi +1 = Xi – fXi( Xi-1-Xi)fXi-1- f (Xi)
er = Xi-XiXi+1 (100)
Determinar la raiz para f(X) = e-x- xpara x1 =0 y x0 =1
1) Xi = x0 – fx0( Xi-1-x0)fXi-1- f (x0)
f(Xi) = f(0) = 1
f (x0) = f (1) = - 0. 6321
x1=1--0.6321 0-1 1+0.6321 = 0.6127
er = 0.6127-1 0.6127 (100) = 63 .21%
2) x2 = x1 – fx1(x0 -x1)f x0- f(x1)
fx0= -0.6321
fx1= f ( 0.6127) = -0. 0708
x2=0.5638
er = 8.67%
RAICES DE POLINOMIOS.
Teorema fundamental del algebra establece que para cada polinomio de grado
“n” con coefisientes reales o complejos, tiene exactamente “n” raices.
Ejemplo: encontrar las raices.
f(x)= (1-x)5
(1-x)5=0
5 raices X1,2,3,4,5 = 1
Se puede encontrar las raices de un polinomio como f(x) = a1+a2 + a3+ ….
+an+1 xn, en metodos numericos el polinomio debe de estar normalizado es
decir, el coeficiente de xn=1.
15
a1an+1+ a2xan+1x+ a2x2an+1+ ….+ xn = 0
∴ b1+ b2x+ b3 x2+….+ xn=0
a) Polinomios de sgundo orden
F(x) = a1+ a2x +a3x2
x=-a2±a22-4(a1)(a3)2(a3)
Ejemplo:
f(X) = 10 + 2x +x4
x1,2=-2±4-402 = -2±-362 x1= -1+3i x2= -1-3i
16
COTAS DE RAICES.
Permite fijar los valores minimo y maximo en donde pueden estar las raices.
Teorema de la cota maxima.
Si los coeficientes de la tabla de divisiones sinteticas son todos no negativas,
entonces el valor en el cual se evalua el polinomio es una cota maxima para
todas las raices.
Teorema de la cota minima.
Si los coeficientes de la tabla de divisiones sinteticas son todos signos
alternados, entonces el valor en el cual se evalua el polinomio es unas cota
minima para todas sus raices.
Ejemplo:
Determina se el siguiente polinomio f(x) = x5- 9x4+ 4x3 +35x2-21x-24 puede
ser acotada en x1= -2 y x2 = 9
x0 = -2 cumple como cota minima del polinomio.
f(-2) = -25- 9(-2)4+ 4(-2)3 +35(-2)2-21-2-24= -50
x1=9 cumple como cota maxima del polinomio.
METODO DE HORNER PARA ENCONTRAR RAICES DE POLINOMIOS.
17
A medida que se encuentran las raices de un polinomio, se puede ir
simplificando el polinomio, al eliminar las raices que ya se han determinado a
este procedimiento se le llama defacion y se basa en el siguiente teorema:
Si evaluamos un polinomio en un valor que sea la raiz, entonces los
coeficientes de la tabla de divisiones sinteticas, correspondientes a los
coeficientes dan polinomios de grado n-1, el cual tiene todas las raices del
polinomio general eceptuando aquella en donde se evalua.
Ejemplo:
Determina las raices del sig. Polinomio f(x) = f(x) = x3+ 6x-20
Se observa que tiene una raiz x0 = 2
x1,2=-2±4-402 = -2±-362 ∴
x0=2 x1= -1+3i x2= -1-3i
METODOLOGIA PARA HALLAR LAS RAICES DE UN POLINOMIO.
1) Determinar cuantas raices exiten mediante T.F.A.
2) Clasificar las raices según su tipo usando la regla de los signos de
Descartes.
3) Hallar una primera aproximacion a cada raiz, esto se puede hacer
calculando los limites superiror e inferiror del intervalo que contiene
todas las raices.
4) Se pueden hacer pruebas mediante divicion sintetica . si se detectan
cotas maximas y minimas se puede reducir el intervalo de busqueda. Sis
e hallan n -2 intervalos es posible usar metodos numericos. Cada vez
que se encuentre una raiz se reduce el polinomio usando division
sintetica.
5) Se puede verificar las raices halladas.
18
UNIDAD III: INTERPOLACION DE ANALISIS Y AJUSTE DE CURVAS.
f(x) = xn+ axn-1…
INTERPOLACION.
Una funcion de interpolacion es aquella que pasa atraves de los puntos dados
como datos, pero que permite determinar el valor de un punto que no esta en
la tabla de valores.
Interpolacion lineal.
Este tipo de interpolacion supone que existe un punto en una linea recta entre
dos puntos adyacentes.
La ecuacion es
Y = yk + (x-xk)(xk+1-xk) (yk+1 –yk)
Ej. Dada la funcion
X Y
0 2
Z 8
4 64
6 212
8 506
10 992
Hallar el valor en x=32
Y = 8 + 3*2-2(64-8)(4-2)
Y = 40.4
19
20
Funcion en C.
Float lineal (float x [], float g[], int n , float xx){
Int i ;
Float yy;
For (i=1 ; I ≤ n ; i ++)
If (x[i] > xx){
Yy = [i-1] + (xx-x[i-1] * (y[i] –y[i-1] / (x[1]-x [i-1]);
Break ;
}
Return(yy);
}
DIFERENCIAS FINITAS ADELANTADAS.
Dada una funcion f (x) en donde:
x0 x1= x0+ h x2= x0+2h …… xn= x0+nh
Todas igualmente espaciadas, existen:
y0, y1, y3,…… yn
Es decir
Se llaman primeras diferencias finitas a
a0= y1 -y0 a1= y2 -y1 …….. an=yn -yn
Se respresenta por: ∆ yi
Se llaman 2do diferencias finitas a la a diferencia de las primeras deiferencias
finitas.
b0= a1-a0 b1= a2-a1 …………… bn-2= an-an-1
Se representa por ∆2 yi
21
Se llaman 3er diferencias finitas a las diferencias de las segunadas
deiferencias finitas.
c0= b1-b0 c1= b2-b1 …………… cn-3= bn-bn-1
Se representa por: ∆3 yi
Corolario.
Sin proceso de diferencias sucesivas de una funcion, una de estas diferencias
se vuelve constante o casi constante se dice que ese conjunto de los valores
corresponden al poliomio de grado igual al orden de la diferencia constantes.
Ejemplo:
Hallar el grado del polinomio del siguiente conjunto.
X Y ∆1 yi ∆2 yi ∆3 yi
0 2 6
2 8 54 48
4 64 150 96 48
6 212 294 144 48
8 506 486 192 48
10 992
El polinomio es de grado 3
Todo este espacio H
Interpolacion de Newton.
yk= y0+ k∆ yi+ k(k-1)2! ∆2 yi+ kk-1k-23! ∆3 yi+ ………
Donde :
Yk es el valor que se desea obtener.
Xk es el valor para el cual se necesita obtener Yk.
Y0 es el vlalor inmediato de y.
X0 es el valor inmediato anterior de X.
22
Ejemplo:
X Y
0 2
2 8
4 64
6 212
8 506
10 992
Encontrar os valores para x = 3.2 y x = -1
x0=2
xk=2
n= 2
K = xn-x0n= 3.2-22=0.6
Yk = 8+ 0.6 (54) + 0.60.6-1(48)2!+ 0.60.6-10.6-2483!
Yk = 8+ 32.4 – 5.76 + 2.688 = 37.328
La interpolacion de Newton no da la funcion solo disminuye el errer en la lineal.
La interpolacion de Lagrange si se puede aplicar a funciones tabulares con
valore de x que sean equidistantes.
Para hacer la interpolacion se escoge un polinomio que pase por todos los
puntos de la tabla. Si se tienen dos puntos el polinomio de grado 1. Cuando se
tienen 3 puntos el polinomio es de grado 2, cuando se tiene n puntos, el grado
es de n-1. Para el siguiente polinomio de n puntos.
y = a0 xn-1+ a1 xn-2+ a2 xn-3+ ……+ an-2 xn-1
Este polinomio puede escribirse como:
Las constantes A, A1, A2, A3, …. An se determinan graficamente de la sig.
Forma.
y=A1x-x2x-x3x-x4……x-xn+
y=A2x-x2x-x3x-x4……x-xn+
y=A3x-x2x-x3x-x4……x-xn+
.
.
.
23
y=Anx-x2x-x3x-x4……x-xn-1+
24
Las constantes A1, A2,A3,……An se determinan graficamente de la siguiente
forma.
Si se hace x = x1, entonces:
A1=yx-x2x-x3x-x4……x-xn
Si se hace x = x2, entonces:
A2=yx-x2x-x3x-x4……x-xn
Si se hace x = x3, entonces:
A3=yx-x2x-x3x-x4……x-xn
Sustituyendo las constantes en el polinomio queda
y=y1 x-x2x-x3x-x4……x-xnx1-x2x1-x3x1-x4……x1-xn+
y2 x-x2x-x3x-x4……x-xnx2-x2x2-x3x2-x4……x2-xn+
y3 x-x2x-x3x-x4……x-xnx3-x2x3-x3x3-x4……x3-xn+
.
.
.
yn x-x2x-x3x-x4……x-xn-1xn-x2xn-x3xn-x4……xn-xn-1+
Ejemplo:
Hallar “y” para x= 2
X Y
0 2
1 3
4 18
6 38
NO REQUIERE INTERVALOS EQUIDISTANTE
25
METODO DE NEVILLE.
Dada una tabla de valores xy se desea encontrar el valor en xa que no se
encuentra en la tabla se emplea el siguiente procedimiento.
1. S e ordena la tabla de mayor a menor respecto a la cercania del punto
de interpolacion xa. calculando la cercania con el punto de interpolacion
de xa.
Se calcula (x,y) xa
Cercania x= |xa -xi|
2. Se calcula el resto de las columnas Pij hasta que solo exista un valor. Se
emplea la sig. Ecuacion.
Pij= xa –xiPij , i-j+ xi+j-xaPi,j-1xi+j-xi
3. El valor de la ultima columna correspondiente al valor buscado de la
interpolacion.
Ejemplo:
Hallar el valor de “y” para x=3 dada la tabla.
X Y
0 0
1 1
4 16
-1 1
1. CERCANIA 0 = |3 - x0| =3
2. CERCANIA 1 = |3 - x1| =2
3. CERCANIA 2 = |3 - x2| =1
4. CERCANIA 3 = |3 - 1| =4
Ordenar la tabla respecto a la cercania.
xi Pi0 Pi1 Pi2 Pi3
4 16 11 9 9
1 1 3 9
0 0 -3
-1 1
Punto P01
26
Pij= xa –xiPij , i-j+ xi+j-xaPi,j-1xi+j-xi
P01= 3-41+1-3169(1-4) =11
P11= 3
P21= -3
P02= 9
P12=9
P22=9
AJUSTE DE CURVAS.
Se emplea para determinar un valor intermedio de datos contenidos en una
tabla mediante una funcion, permite obtener una ecuacion que representa a la
curva.
Metodo de Gauss donde para resolver sistemas de ecuaciones lineales
(directas).
Consiste en la manipulacion de una matriz aumentada formada por la
submatriz de coeficientes S el vector de terminos endependientes B y la matriz
identidad I de orden n, donde n es el numero de ecuaciones del sitema. El
metodo de eliminacion de Gauss-Jordan consiste de n pasos, cada uno formado
de:
A) Normalizacion en donde se trabaja con la fila
B) Redaccion en donde se trabaja con la columna.
Ejemplo:
Resolver el siguiente sistema de ecuaciones.
4x1+2x2+x3=11
-x1+2x2 =3
2x1+x2+4x3=16
2(1) +2(2)+3(3) = 11 2(1) +2 +12 =16
2 + 4 + 9 =11 2+2+12=16
6 + 9 ≠ 11 16=16
27
-2 + 2(2) = 3
2≠3
Matriz aumentada.
42 1 -120214 100010001
x1=1 ; x2=2 ; x3=3
METODO DE MINIMOS CUADRADOS PARA AJUSTE DE CURVAS
Los datos o errores aleatorios en el sistema de medicion, por lo que siempre
existe la necesidad de ajustar esos datos. El metodo de minimos cuadrados
trata de minimizar esos errores obteniendo una funcion que es una curva
suave que se aproxima a todos los puntos mediate el siguiente procedimiento:
Se tiene una tabla de la siguiente forma:
Se grafican los puntos se trata de
pasar por todos los puntos o reducir al
minimo los reciduos.
Se propone una funcion polinomial cuya grafica es una curva suave que se
acerca a los puntos
Y = f(x) = a0+ a1x + a2x²+…+ amxm
El metodo de minimos cuadrados trata de obtener la minima suma del
cuadrado de los reciduos
Rj = yi-f(xi) se sustituye en el polinomio Ri.
Ri=yi= ( a0+ a1x + a2x²+…+ amxm)
Despues se suma todas las diferencias.
i=1nRi2= i=1n{yi- ( a0+ a1x + a2x²+…+ amxm)}²
Para reducir al minimo el error de la sumatoria se igualan a 0 los primeras
derivadas a todos y cada uno de los parametros de la ecuacion anterior.
∂∂aji=1nRi2= i=1n{yi- ( a0+ a1x + a2x²+…+ amxm)}²
Con m = 1,2,3…
J = 0,1,2,….
a) Para una recta m = 1 y n = #datos
Ecuacio de una recta => y = a0 + a1x
28
Se obtiene :
n a0 + a1 i=1nxi = i=1nyi
29
UNIDAD 5: ALGEBRA LINEAL.
En ingeneria es comun que los sistemas se expresen como un conjunto de
ecuasiones, por lo que la solucion de forma eficiente se puede realizar
mediante metodods numericos. Los metodos de soluciones de sistemas de
ecuaciones lineales se divide en dos grupos:
1. Los metodos exactos o algoritmos iterativos e finitos y que colocan la
solucion del sistema por aproximaciones sucesivas.
2. Los metodos exactos o algortimos finitos son los que permiten obtener la
solucion de manera directa.
Entre los metodos aproximados se tienen los metodos de Richardson, Jacobi,
Gauss-Seidel. Algunos ejemplos de los metodos exactos son el metodo de
Gauss y su varacion Gauss-Jordan.
Un metodo indirecto de lugar aa una asociacion de vectores que idealmente
converge a la solucion. Para obtener estas aproximaciones regularmente se usa
calculo sensillo.
Sistema de ecuaciones:
Es un conjunto de ecuaciones que debe de resolverse simultaneamente.
= b1
= b2
= b3
.
.
.
= bn
Un sistema de ecuasiones se puede representar de una forma matricial.
30
31
TEOREMA DE SOLUCION DE ECUASIONES LINEALES.
Si b = 0 para i=1,2,3,4,…n se dice que el sistema de ecuasiones es homogenio
, la unica solucion es xi=0 con i=1,2,3,4,…n .
Si por lo menos una bi ≠0 el sisitema es no homogenio y Xi tendra algun valor.
Si cualquier ecuacion es una combinacion lineal de cualquier otra se dice que
el sistema es linealmente dependiente.
Si ninguna ecuacion es dependiente de otra el sistema es lineal independiente.
Al determinante formado por aij se llama determinante caracteristico del
sistema (Δ).
Si el determinante caracteristico es igual con cero el sistema de ecuaciones es
dependiente.
Si el determinante caracteristico es diferente a cero el sisitema es
independiente.
Si el sistema es independiente y no homogeneo existe una solucion unica para
el sisitema.
Si el sisitema es dependiente y homogeneo la unica solucion es xi=0.
Si el sistema es dependiente y homogéneo no existe solución.
Si el sistema es dependiente y no homogéneo no existe solución.
Cualquier solución del sistema puede multiplicarse para dar una constante sin
que el sistema se altere.
Cualquier ecuación o ecuación modificada puede sumarse termino a término a
otra ecuación sin alterar la igualdad ni la solución del sistema.
ALGORITMOS POR METODOS DIRECTOS.
Los métodos directos son aquellos que determinan la solución en un número
determinado de pasos. Estos métodos son los más usados por que
proporcionan una solución analítica. Algunos ejemplos son el método de
eliminación de Gauss.
Método de eliminación de Gauss.
Método de eliminación de Gauss-Jordán.
Método de Matrices.
Regla de Cramer.
Método de Montante.
32
METODO DE ELIMINACION GAUSSIANA.
Consiste en dos pasos:
1.- Eliminación hacia adelante. Se maneja la ecuaciones para eliminar una
incógnita de una ecuación. Se termina cuando queda una ecuación con una
variable.
2.- Sustituyendo hacia atrás: Se resuelve la ecuación y se sustituye hacia
atrás en las ecuaciones restantes.
Se tiene
33
METODOS INDIRECTOS O METODOS ITERATIVOS.
Los métodos iterativos son aquellos que obtienen la solución por aproximación.
Estos métodos, son propiamente numéricos los cuales obtienen una solución
mediante una aproximación a la solución del problema. Los métodos iterativos
obtienen solución del problema. Los métodos iterativos obtienen una sucesión
de vectores que se aproximan a la solución del sistema. Estos métodos
requieren de un criterio de convergencia para determinar cuando se detienen.
Se puede usar el error relativo, para presentar el problema de que se tiene que
realizar una división de vectores, por eso se utiliza la siguiente ecuación.
1) Criterio de convergencia
[Link]= |xk- xk-1||xk|
K = iteración.
|| || = norma vetorail.
xk = vector en la iteración K
xk-1 = vector de iteración k-1
||x|| =i=1nxi2
||x|| = i=1nxi norma Euclidiana
2) Segundo criterio de convergencia numero de iteraciones
METODO DE JACOBI.
Consiste en despejar xi de la ecuación y sustitur en cada una de las
ecuaciones del vector inicial propuesto. El método se representa de la siguiente
forma.
xik+1= bi – j=1, j≠i naijXjkaij
K = iteración
xk+1 = aprox. Al vector solución en la iteración k+1.
xjk= aprox. Al vector solución en la iteración k.
Ejemplo: resolver Valor
inicial
34
x3 =[1,1,1]
4x1+ 2x2+ x3=11 …. (1)
-x1+ 2x2=3 ….. (2)
2x1+ x2+ 4x3=16 …. (3)
Despejar x1 de (1)
x1=11-2x2+ x34 x1 2
Despejar x2 de (2)
x2=3+ x12 x2 2
Despejar x1 de (1)
x3=16-2x1+ x24 x3 134
1: x0 [1,1,1] => x1 [2,2,13/4]
2: x1[2,2,13/4] =>x2 [15/16, 5/2 , 5/2]
3: x2 [15/16, 5/2 , 5/2] => x3 [7/8 , 63/32, 73/32]
4: x3 [7/8 , 63/32, 73/32] => x4 [ 133/128, 31/16, 393/128]
5: x4 [ 133/128, 31/16, 393/128] => [519/512, 517/256, 767/256]
Suposición de x0.
I) x0 =[0,0,….0]
II) x0 = [1,1,…1]
III) x0 = b1b11, b2b22,…. bnbnn
35
FUNCION JACOBI.
Void jacobi (float a [100][100], float b [100], float x[100], int n ){
Int I,j,i+j;
Float y, er, xx[100];
/suposicion vector inicial caso II/
For (i =1 , i<=n; i++ ){
If (a[i][i] I =0)
X[i] = b[i] / a [i][i];
Else x[i] =1;
Despejar ecuaciones
For (i+=1 ; i+<=1000; I ++){
For (I =1 ; i<= n; j++)
xx [j] = x[j];
for (i=1; i<= ; i++){
y = b[i];
for (j = 1 ; j< =n ; j++)
y =y –a [i][j] *xx [j]
y = y / a[i][j];
er= fabs ((X[i] –y / y );
x [i] =y;
}
If (er <= 0.000001)
break;
}
}
METODO DE GAUSS-SEIDEL
36
Tan pronto se van obteniendo los valores de las variables se sustituyen en el
cálculo actual.
4x1+ 2x2+ x3=11
-x1+ 2x2+ =3
2x1+ x2+ 4x3=16
Tomando un vector inicial = x0[1,1,1]
x1= bi+ ∑a11
x1= 11-(2x2+ x3)4
x2= 3+ x12
x1= 16-2(x1)+ x24
Iteración
1 x0 = [1,1,1]
x1= 11-(2+1)4 =2
x2= 3+22 =52
x3=16-22+52=19/2
x1 = [2 , 5/2 , 19/2]
37
UNIDAD VI: ECUASIONES DIFERENCIALES ORDINARIAS
En la práctica de laingeniera y ciencias es frecuente que los fenómenos
estudiados se representen como ecuaciones que impliquen el cambio de una
variable respecto a otra. Por lo regular esas derivadas se encuentran referidas
al tiempo o al espacio.
Los problemas de EDO se clasifican en problemas con condiciones iníciales y
problemas con condiciones de frontera.
Dado que la solución de la ecuación diferencial es una función y que los
métodos numéricos es una función y que los métodos numéricos solo obtienen
números, la solución se obtiene como una tabla de la solución de la ecuación.
ALGORITMOS POR METODOS DE TAYLOR.
Problemas con condiciones iníciales de una EDO de primer orden.
y1 x= f(g,x)
y(x0) = v0
Donde f(g,y) es la función de y en tanto x la relación entre X y Y se obtiene al
encontrar los coeficientes de la serie de Taylor en la que se desarrolla y
relaciona a X.
En el punto x = x0
Y(x) = y(x0) + y1 (x0) (x-x0) + y2x02! (x - x0)² + y3x03! (x - x0) + …. por
series de Taylor
Hacemos h = x - x0
Y(h) = y (x0) + y1(x0)h + y2 (x0) h22! + y3 (x0) h33! + ….
Debido a que y (x0) es la condición inicial el primer termino se conoce a partir
de la condición inicial. El segundo termino se obtiene al sustituir x y y en la
ecucion.
y1 xf(y,x)
Las derivadas de segundo orden o superior se obtienen al derivar
sucesivamente la ecuación de la primera derivada y sustituir x.
38
Ejemplo:
Encontrar la solución para [0,68] con h = 0.1 de
y1 x= -2x-y -3e-x - 2x +2
y(0) = -1
yIx0= y1 0= -20= -20=1
yII (x0) = -2 -y1= -2-1=3
yIII(x0) = -yII = 3
yIV x0= -yIII=3
Y(h) = y x0 + yIx0h + yII (x0) h22! +yIII (x0) h33! + yIV (x0) h44!
H Y(h) Y(x)
0.0 -1 -1
0.1 -0.9145 -0.914
5
0.2 -0.8562 -0.856
2
0.3 -0.8225 -0.822
5
0.4 -0.811 -0.811
0.5 -0.820 -0.820
0.6 -0.8482 -0.848
2
0.7 -0.8985 -0.898
5
0.8 -0.9552 -0.955
2
El problema es que hay que calcular derivadas a mano.
METODO DE EULER.
Tomando los dos primeros términos de la serie de Taylor.
39
Y(h) = y x0 + yIx0h
yi+1- yin= yi1
yi+1= yi + yih f(xi, yi)
yi+1= yi+ f(xi, yi)h
Solo para EDO
dydx=f(x,y)
Se precede un nuevo valor de y
usando la pendiente ya que la
primera derivada ofrece la estimación de la pendiente en xi y yi.
40
Ejemplo:
Con el método de Euler obtenga la solución para dydx= -2x3+ 12x2- 20x+85
Desde x =0 , x = 2 con h = 0.5
C.I. : en x=0 y =1 y(o) =1
y(0.5) = y(0) + f (0,1) (0.5)
y(0.5) 0= 5.28
yi+1= yi+ f(xi, yi)h
f(1)=5.25 + F (0.5, 5.25)h
f(1) = 5.875
X f(y)
0 100
0. 5.25
5 0
1 5.87
5
1. 5.12
5 5
2 4.50
0
METODO DE EULER-GAUSS.
Igual la de Euler, con correcciones.
y1=f(x,y) se usa el método del trapecio para integrar.
yi+1 (presendida) = yi + h yi Euler
yi+1 (corregida) = yi +1/2h yi1+ yi+11presendida
Tiene más error que el método de Taylor por que se trunca en el Segundo
termino pero menos que la de Euler por la corrección.
41
Ejemplo:
y1=12(1+x)y2
Se conoce y (0) = 1 en el intervalo x=0 a x = 0.5 con h =0.1
Para x0 =0 => y0 = y(0) = 1
Para x1 = 0.1 => y1(presedida) = y0 + h y01
y1= 1+ 0.1 (1/” (1+0) (1)² =1.05
y1(corregida) = y0+12 h y01+ y1presedida1 = 1.055315
Para x4x2=0.2 => y2(presedida)= y1+ y11
y11=121+0.11.0553152= 1.116572
y2(presedida)= y1+12h {y11+ y2presedida1=1.123347
x3=0.3=> y3(presedida)= y2+ hy21=1.199062
y3(corregida)= y2+12h {y2+ y3(corregida)=1.207932
x4=0.4=> y3(presedida)= y3+ hy31=1.296265594
y4(corregida)= 1.432557
X yi
0 1
0. 1.05531
1 9
0. 1.12334
2 7
0. 1.20793
3 2
0. 1.31475
4 5
0. 1.43255
5 7
PROGRAM EN C
Void euler-gauss (float xi, float xf, float h, float yi)
Int i = 1;
While (xi<xf){
Printf (“%g”, yi);
Yi = yi +h (f(xi,yi)+f(xi+h, yi + h *f(xi,yi)))/2;
42
Xi = xi +h;
i++;
}
}
Float f ( float x, float y ) {
Return (0.5 x (1 +x) *y*y);
}
43
METODO DE TAYLOR DE ORDEN MAYOR.
Resuelven una ecuación de orden superior por ejemplo:
yII =3+x-y2 con y(0) =1 y y10=-2
ALGORITMO DE RANGE-KUTTA.
Para obtener este método se toma in incremento en y como el promedio
ponderado de dos estimacione de incremento denominados k1 y k2 por lo que
en la ecuación dydx f(x,y) tenemos yn+1=yn+ ak1+ bk2 (*) en donde k1=
hf(xn, yn)(*) K2 =hf(xn+ αh, yn+ βk1 (*).
Si se piensa que los valores de k1 y k2 son estimaciones de cambio en y
cuando x avanza por h, entonces es posible utilizar la estimación de Euler para
Δy; también es posible estimar aproximaciones por fracciones de α y β de h y
de la primera estimación Δy k1, por lo hay que elegir cuatro parámetros A,B,
α y β , esto se logra asiendo considir las ecuaciones (*) con la serie de Taylor
donde las derivadas se escriben en términos de f a partir de dydx f(x,y):
Yn+1 = yn hf(xn, yn) + h2f (xn,yn)2+…..+
Como:
dydx fx+fy ∴ Yn+1 = yn hf(xn, yn) + h2f (xn,yn)2 (**)
Se sustituye k1 y k2
∴ yn+1 = yn ahfxn, yn+ bhf(xn+ αh, yn+chf(xn+ βh, yn)
Se desarrolla la serie de Taylor
f(xn+ αh, yn+ βhf xn, yn=f+fxαh+fyβhfn
Sustituimos (*) en (**)
yn+1 = yn+ a+bh fn+ h2αbfx+ βbfyfn debe ser idéntica a (**)
Se deben igualar las ecuasiones con auto similitud
a + b=1
α b= 0.5 con a = 3/2 , b =1/3, α= 3/2 y β = 3/2
β b = 0.5
∴ yn+1 = yn+23k1+13k2
k1= hfxn, yn Metodo de Euler-Gauss
k2 =hfxn+23h, yn+23k
44
METODO DE RENGER-KUTTA DE ORDEN 1.
Se obtiene igualando la serie de Taylor se obtienen once ecuaciones con trece
incógnitas.
yn+1 = yn+16 (k1+2k2+ 2k3+ k4)
k1= hfxn, yn
k2 =hfxn+12h, yn+12k1
k3 =hfxn+12h, yn+12k2
k4 =hfxn+h, yn+k3
Ejemplo:
Resolver y1121+xy2 ; y0=1, x=0, ax=0.5 y con h=0.1
Para x = 0 => y0 = 1
Para x1=0.1=> k1 = 0.1f(0.1)=(0.1)(1/2 (1+0)(1)² = 0.05
k2 = 0.0551578
k3 =0.0554357
k4 =0.0612670
y1=1.055409
y2=1.123595535
y3=1.20346
y4=1.31579
45
RANGE-KUTTA-FEHLBERG.
yn+1= yn +16135 k1+665612825 k3+2856156430 k4-950k5+25 k6
k1= hfxn, yn
k2 =hfxn+14h, yn+14k1
k3 =hfxn+38h, yn+332k1+932k2
k4 =hfxn+1215h, yn++19322197k1-72002197k2+72962197k3
Ejemplo:
Resolver y1121+xy2con y 0=1 para x=0 a x=0.3 con h=0.1
Para x0=0 y0 = 1
Para x1= 0.1 k1=0.052539257
k2=0.0539141
k3=0.0539141
k4=0.0603087
K5=0.0612908
k6=0.0552408
y1=1.0554089
Para x = 0.2 k1=0.0539141
k2=0.0612638
k3=0.0644879
k4=0.0603087
K5=0.0612908
k6=0.0552408
y1=1.0554089
Para x3=0.3 k1=0.612908
k2=0.052539257
k3=0.0539141
k4=0.0603087
K5=0.0612908
k6=0.0552408
y1=1.0554089
46