Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Capítulo 1
Introducción a la Computación
Contenido
8. Análisis de la solución
Verificar consistencia con la situación
planteada
¿Cumple las expectativas?
¿Permite hacer predicciones?
Entorno:
3. Análisis inicial
– Caída libre
v = 2 gh
Solución de problemas en ingeniería
8. Análisis de la solución
– Caída libre
dv FR = −Cv
F = ma = m = mg + FR
dt
C es un coeficiente que toma en cuenta los efectos de resistencia
del medio ambiente
8. Análisis de la solución
gm
– Existe una velocidad limite dada por v=
C
– Modelo satisface expectativas
50
40
v(m/s)
30
20
10
0
0 10 20 30 40 50
t(s)
Solución de problemas en ingeniería
Buscando la solución de la EDO (MATHEMATICATM)
−dv
Ct
i
F = ma = m m =j
j− 1 ++ FmR y
Ct
z
z g m FR = −Cv
In[4]:= SimplifyA
dt k { E
mg
C
i
j − Ct y
m z
j1 − z gm
k {
Out[4]=
7. Determinar
C soluciones al modelo matemático
Modelos numéricos
Aplicación de un modelo numérico
50
v (m /s ) 40
30
20
10
0
0 10 20 30 40 50
t(s)
Error relativo
10
8
-v)/v*100
6
num
4
(v
0
0 10 20 30 40 50
t(s)
Directorio de Trabajo
WorkSpace
Ventana de Comandos
Historia de comandos
Introducción a MATLAB
>> v=(g*m/C)*(1-exp(-(C/m)*t));
>> plot(t,v)
Para obtener
Introducción a MATLAB
Algunos aspectos:
–Variables
Los valores
453.00
4.53·102
4.530·102
4.5300·102
p − p*
εr = , p≠0 ,
p
Esta medida nos permite apreciar mejor cuán cerca se
encuentra realmente el valor aproximado del valor real.
Sin embargo, para valores cercanos a cero, esta
representación del error puede llevar a falsas
interpretaciones.
Exactitud y Precisión
Exactitud
Exactitud y Precisión
f ′′ ( x0 ) ⋅ ( x − x0 )
2
f ( x ) = f ( x0 ) + f ( x0 ) ⋅ ( x − x0 ) +
′
2!
(
+ O ( x − x0 )
3
)
se tiene que se comete un error por el hecho de truncar
el desarrollo. El término O((x-x0)3) indica que se está
cometiendo un error debido al truncamiento de la serie
de Taylor del orden de (x-x0)3. Por supuesto, al utilizar
más términos puede disminuir el orden de magnitud del
error cometido.
Aproximaciones y errores
x 1 = x r + x ii x1 = x r -x i i
Inicio α β
Leer valores si no
de a, b, c d>0
xr = -b / 2a
xi = √(-d) / 2a
2
d = b – 4•a•c x1 = (-b + √d) / 2a
x2 = (-b - √d) / 2a x = -b / 2a
Mostrar “x1,2 = “,
no Mostrar
d≥0 β Mostrar xr,“±”,xi,“i”
“x1 = “, x1 “x1,2 = “, x
“x2 = “, x2
si
α
Fin Fin
Ejemplo MATLAB
% Programa SolEcSegGr
xr=-b/(2*a);
% SolEcSegGr halla las raices de una ecuación de segundo grado
xi=sqrt(abs(d))/(2*a);
% a x^2 + b x + c = 0
disp([' x1 = ' num2str(xr) ' + i ' num2str(xi)]);
disp([' x2 = ' num2str(xr) ' - i ' num2str(xi)]);
clear all;
end
disp([' Solucion de una ecuacion de segundo grado ']);
disp([' Introduccion de los coeficientes A,B y C ']);
a = input('a = ');
b = input('b = ');
c = input('c = ');
d = b^2 - 4*a*c;
if d>=0
x1=(-b+sqrt(d))/(2*a);
x2=(-b-sqrt(d))/(2*a);
disp([' x1 = ' num2str(x1)]);
disp([' x2 = ' num2str(x2)]);
else
Operadores aritméticos, relacionales y lógicos
Ejemplo Resultado
Símbolo Operación Tipo
de uso
+ suma (adición) binario a+b a+b
- resta (sustracción) binario a-b a-b
* multiplicación binario a*b a*b
(producto)
/ división (cociente) binario a/b a/b
+ mismo signo unario +a A
- cambio de signo unario -a -a
Operadores relacionales
Ejemplo de Resultado
Símbolo Operación Tipo
uso
CIERTO o
> mayor a binario a>b
FALSO
CIERTO o
≥ mayor o igual a binario a≥b
FALSO
CIERTO o
< menor a binario a<b
FALSO
CIERTO o
≤ menor o igual a binario a≤b
FALSO
CIERTO o
= igual a binario a=b
FALSO
CIERTO o
≠ distinto a binario a≠b
FALSO
Operadores lógicos
Ejemplo Resultado
Nombre Operación Tipo
de uso
CIERTO si a y b son
AND (Y) Y lógico binario a AND b ciertos, FALSO en
cualquier otro caso
FALSO si a y b son
OR (O) O lógico binario a OR b falsos, CIERTO en
cualquier otro caso
CIERTO si a es
NOT (NO) Negación unario NOT a FALSO, FALSO si a es
CIERTO
CIERTO si a y b
XOR tienen el mismo valor,
O exclusivo binario a XOR b
(XOR) FALSO en cualquier
otro caso.
Operadores lógicos
AND OR
a b CIERTO FALSO a b CIERTO FALSO
NOT XOR
a
a ----- CIERTO FALSO
b
Diagramas de bloque
Seudo-código o seudo-lenguaje
Esta técnica emplea enunciados en inglés o español en
lugar de los símbolos gráficos de los diagramas de bloque.
En general, no existe un estándar aceptado
internacionalmente para representar algoritmos en seudo-
lenguaje.
Sin embargo, para entenderse con otros es necesario fijar
una convención.
Los enunciados forman estructuras que se clasifican en tres
grandes grupos: secuencias, repetición y selección o
decisión.
Opciones para representar a los algoritmos
Secuencias:
Estructura Significado
Paso 1; 1.Las secuencias son tareas específicas que
debe realizar el programa, tal como leer un
Paso 2;
valor de la consola o evaluar una fórmula.
Paso 3;
2.Estos enunciados son ejecutados en orden
. secuencial, de izquierda a derecha y de
arriba hacia abajo, es decir en el mismo
.
orden en el que leemos.
.
3.El operador coma “,” permite representar
Paso n; en una sola línea varias secuencias cuando
estas son lo suficientemente sencillas.
//...
Paso 1, Paso 2, Paso n;
Ejemplo MATLAB
% Programa Secuencia
g = -9.8; % m/s^2
v0 = 0; % m/s
y0 = 20; %m
y = 0; %m
vf = sqrt(v0^2 + 2*g*(y-y0));
Repeticiones (1)
MIENTRAS (Condición) 1. Las sentencias son ejecutadas
secuencialmente mientras la condición
Sentencias 1;
sea cierta.
Sentencias 2;
2. Se utiliza cuando no se sabe de
. antemano cuantas repeticiones serán
requeridas.
.
3. Siempre verifica la condición al
.
principio de cada iteración.
Sentencias n;
4. Si la primera vez que se verifica la
FIN MIENTRAS condición esta resulta FALSA, las
sentencias no se ejecutan nunca.
Ejemplo MATLAB
% Programa mientras
cont=0;
num = num/2;
cont = cont + 1;
end
Repeticiones (2)
Repeticiones (3)
PARA Inicio Hasta Fin 1. Siempre se compone de tres partes, a
Incrementar Inc saber: Inicio (inicialización del contador
de control del lazo), Fin (condición de
Sentencias 1;
salida del lazo, mientras esta sea cierta se
Sentencias 2; continúa iterando) y Inc (que representa
el incremento o decremento del contador
.
de control).
.
2. Las sentencias son ejecutadas
. secuencialmente una cantidad predefinida
de veces.
Sentencias n;
3. La condición del lazo se verifica al
FIN PARA
comienzo de cada iteración, si esta
resulta falsa a priori nunca se ejecutaran
las sentencias respectivas.
Ejemplo MATLAB
% Programa para
% Demostración de la estructura de repetición para
disp([' Hallar la suma de los primeros n enteros'])
Decisiones (1)
//Condicional de una sola 1. Si la condición es cierta, se ejecutan
alternativa secuencialmente las sentencias.
SI (Condición) 2. Si la condición es no cierta, la
ejecución del algoritmo continúa en el
Sentencias 1;
primer enunciado que siga a la palabra
Sentencias 2; reservada FIN SI.
. 3. La versión corta ahorra la necesidad
de dibujar una línea y emplear la
.
palabra FIN SI, pero sólo aplica sobre
. sentencias sencillas. Es decir aquellas
que pueden ser separadas por el
Sentencias n;
operador coma o porque se trata de un
FIN SI solo estamento.
//Sintaxis corta
SI (Condición) Sentencia;
Opciones para representar a los algoritmos
Decisiones (2)
//Condicional de doble 1. Si la condición es cierta, se ejecutan
alternativa secuencialmente únicamente los
SI (Condición) enunciados que se encuentran entre las
Sentencias 1; palabras SI y SINO.
Sentencias 2; 2. Si la condición no es cierta, se
. ejecutan secuencialmente únicamente los
enunciados que se encuentran entre las
.
palabras SINO y FIN SI.
Sentencias n;
SINO 3. En cualquiera de los dos casos, la
ejecución del algoritmo continúa en el
Sentencias n + 1;
primer enunciado que siga a la palabra
Sentencias n + 2; FIN SI.
.
4. Esta estructura provee la bifurcación
. típica en computación donde debe
Sentencias n + m; decidirse que camino tomar al llegar a
FIN SI una intersección.
Ejemplo MATLAB
% Programa SolEcSegGr
if d>=0
% SolEcSegGr halla las raices de una
x1=(-b+sqrt(d))/(2*a);
% ecuación de segundo grado
% a x^2 + b x + c = 0 x2=(-b-sqrt(d))/(2*a);
d = b^2 - 4*a*c;
Opciones para representar a los algoritmos
Corrida en frío: n = 3; x1 = 1, x2 = 2, x3 = 3
Sum = 0, i = 1 (i = 1 al comienzo de la estructura
PARA – FIN PARA)
Pregunta: (i = 1) ≤ 3 ? ⇒ si ⇒ Sum = 0 + 1 = 1,
i=1+1=2 ,
Pregunta: (i = 2) ≤ 3 ? ⇒ si ⇒ Sum = 1 + 2 = 3,
i=2+1=3 ,
Pregunta: (i = 3) ≤ 3 ? ⇒ si ⇒ Sum = 3 + 3 = 6,
i=3+1=4 ,
Pregunta: (i = 4) ≤ 3 ? ⇒ no ⇒ fin de estructura
PARA – FIN PARA ,
Mostrar Sum = 6 .
Ejemplo
!****************************************************************************
!
! PROGRAM: Num_Ter_Seno
!
! PURPOSE: Calcula el número de términos para aproximar la función seno
! utilizando el desarrollo en serie de Mclaurin
!
! ENTRADA: x, sen(x), TOL, M
! SALIDA: Número de términos o mensaje de error
!****************************************************************************
program Num_Ter_Seno
implicit none
integer M,n,fact,i
double precision x,TOL,sum,F,signo,error,term
! Datos de entrada
write(*,*)" x (radianes) = "
read(*,*) x
write(*,*)" Tolerancia = "
read(*,*) TOL
write(*,*)" Número de términos = "
read(*,*) M
Ejemplo: Fortran (2)
n=0
sum = 0.0
F = sin(x)
signo = 1.0
! Primera aproximación
error = 2.*TOL
! lazo de cálculos
do while ((error.gt.TOL).and.(n.le.M))
n = n + 1;
! calculo del factorial
fact=1
do i=1,2*n-1
fact=fact*i
enddo
sum = sum + (signo * (x**(2*n-1))/fact)
term = (signo * (x**(2*n-1))/fact)
error = abs(sum-F)
write(*,*)n," ",sum," ",error," ",term
signo = (-1.)*signo
enddo
Ejemplo: Fortran (3)
if(n.le.M) then
write(*,*)"Se requieren", n," términos"
else
write(*,*)"El método falló"
endif
Ejemplos: (110)2=1*22+1*21+0*20=4+2+0=(6)10
(83)10=1*26+0*25+1*24+0*23+0*22+1*21+1*20=(1010011)2
Representación de números en el computador
0 1 2 3 4 5 6 7
Representación de números en el computador
n = m ⋅ be ,
– La mantisa es usualmente normalizada y escogida en
el rango [0;1).
Capítulo 1
Introducción a la Computación
MECÁNICA COMPUTACIONAL I
Capítulo 2
– Métodos gráficos
a)Métodos gráficos
Una gráfica permite estimar la ubicación de la raíz
b)Métodos cerrados
La raíz se busca dentro de un intervalo particular
c)Métodos abiertos
La raíz se busca a partir de un punto particular
Métodos gráficos
a b x a b x
Dos raíces
1.6 -1.02877313 0
1.8 -1.20104973
2 -1.32544426 0 2 4 6 8 10
2.2 -1.39699752
-0.5
2.4 -1.4128569
2.6 -1.37239013 -1
2.8 -1.27721049
3 -1.1311125
3.2 -0.93992063 -1.5
3.4 -0.71125709
3.6 -0.45423797 -2
3.8 -0.17910982
4 0.10315887 x
Supongamos que la raíz de interés está cercana a 4
Métodos gráficos
y
f(b)
a f(x)=0
b x
f(a)
Teorema de Bolzano
f(a) f(a)
a b x
a f(x)=0 b x
y
f(b)
c0 c2
a c0 c2
c1
c1 b x
f (c2)
f (c0) f (c2)
f(a)
f (c0)
f (b )
c
a
b
f (a)
y
f(b)
c0 c1
a c0 c1
b x
f (c1)
f (c0) f (c1)
f(a)
f (c0)
Algoritmo del Método de Interpolación lineal
Ejemplo del método de Interpolación lineal
f ( x ) = x10 − 1 = 0
Gráficamente f ( x ) = x10 − 1 = 0
Interpolación lineal
1.2
0.6
x
0.4
0.2
0
0 5 10 15 20 25
n
Método de Interpolación lineal modificada
Convergencia unilateral
c0 c1
a c0 c1
b x
f (c1)
f (c0) f (c1)
f(a)
f (c0)
Método de Interpolación lineal modificada
y
f(b)
f(b)/2
c0 c1
f(b)/4 c2
a c0 c1
c2
f (c1)
b x f (c1)
f (c0)
f(a)
f (c0)
Método de Interpolación lineal modificada
Ejemplo: Método de Interpolación lineal modificada
Continuación...
Método de Interpolación lineal modificada
0.8
Interpolacion Lineal
0.6
x
Interpolacion lineal
modificada
0.4
0.2
0
0 5 10 15 20 25
n
MATLAB: funciones (1)
Nombres coincidentes
Si “anidado”
Casos
Si - sino
Métodos Abiertos
Método de la Secante
f (b )
c =b− (b − a )
f (b ) − f (a )
c
a b x
Método de Newton-Raphson:
() ( )(
0≈ f x + f′ x x−x )
Entonces
x ≅ x−
(
f x )
f ′( x)
y un proceso iterativo puede ser llevado a cabo como
f ( xn )
xn +1 = xn −
f ′( xn )
Métodos Abiertos
xi +1 = xi + Δx
y
( xi +1 − xi )
2
f ( xi +1 ) = f ( xi ) + f ′ ( xi )( xi +1 − xi ) + f ′′ ( xi ) + O ( Δx3 ) (NR-2)
2!
Análisis del error en el método de Newton-Raphson
0 ≈ f ( xi ) + f ′ ( xi )( xi +1 − xi )
f ( xi )
xi +1 = xi − (NR-4)
f ′ ( xi )
f ( xi +1 ) = f ( xi ) + f ′ ( xi )( xi +1 − xi ) + f ′′ ( xi ) + ... + f (ξ )
(n)
2! n!
Análisis del error en el método de Newton-Raphson
(x − x )
2
f ( xi +1 ) = f ( xi ) + f ′ ( xi )( xi +1 − xi ) + f ′′ (ξ ) i +1 i (NR-5)
2!
0 = f ( xi ) + f ′ ( xi )( xr − xi ) + f ′′ (ξ ) (NR-6)
2!
0 = f ( xi ) + f ′ ( xi )( xr − xi ) + f ′′ (ξ )
2!
{ }
− f ( xi ) + f ′ ( xi ) ⎡⎣ Et ,i − Et ,i +1 ⎤⎦
0 = f ′ ( xi ) ( Et ,i ) + f ′′ (ξ ) − f ′ ( xi ) ⎡⎣ Et ,i − Et ,i +1 ⎤⎦
2!
(E )
2
0 = f ′′ (ξ ) + f ′ ( xi ) Et ,i +1
t ,i
2!
Despejando
f ′′ (ξ )
( Et ,i )
2
Et ,i +1 = − (NR-8)
2 f ( xi )
′
Análisis del error en el método de Newton-Raphson
Luego, en (NR-8)
f ′′ ( xr ) (NR-9)
( Et ,i )
2
Et ,i +1 = −
2 f ( xr )
′
y y
diverge
x1 x0
x2 x x0 x1 x2 x
Los iterados se alejan
cada vez más
x3 x1
x2 x0 x x0 x1 x
Raíces múltiples
Considere la función
f ( x ) = x3 − 5 x 2 + 7 x − 3
x 3 - 5x 2+7x-3
10
4
f(x)
-2
-4
0 0.5 1 1.5 2 2.5 3 3.5 4
x
Raíces múltiples
1
f(x)
-1
-2
-3
0 0.5 1 1.5 2 2.5 3 3.5
x
Raíces múltiples
f ′( x) = n ( x − xr ) h ( x ) + ( x − xr ) h′ ( x )
n −1 n
f ( x) ( x − xr ) h ( x )
n
u ( x) = =
f ′ ( x ) n ( x − xr )n −1 h ( x ) + ( x − xr )n h′ ( x )
u ( xr ) = Lim ⎡⎣u ( x ) ⎤⎦ =
( x − xr ) h ( x )
=0
x→ xr nh ( x ) + ( x − xr ) h′ ( x )
Raíces múltiples
⎛ f ( x ) ⎞′ f ′ ( x ) f ′ ( x ) − f ′′ ( x ) f ( x )
u′ ( x ) = ⎜⎜ ⎟⎟ =
⎝ f ′ ( x ) ⎠ ⎡⎣ f ( x ) ⎤⎦
′
2
⎡ f ( x) ⎤
⎢ ⎥
u ( xi ) ⎢ f ′( x) ⎥
xi +1 = xi − = xi − ⎢
u′ ( xi ) f ′ ( x ) f ′ ( x ) − f ′′ ( x ) f ( x ) ⎥
⎢ ⎥
⎢⎣ ⎡⎣ f ′ ( x ) ⎤⎦ ⎥⎦
2
x = xi
f ( xi ) f ′ ( xi )
xi +1 = xi − 2
f ′ ( xi ) − f ′′ ( xi ) f ( xi )
Convergencia del método de N-R para raíces múltiples
f ′′( x) = ( x − xr )
n−2
{( n − 1) ⎡⎣nh ( x ) + ( x − x ) h′ ( x )⎤⎦ + ( x − x ) ⎡⎣( n + 1) h′ ( x ) + ( x − x ) h′′ ( x )⎤⎦}
r r r
{
⎡( x − xr )n−2 ( n −1) ⎡nh( x) + ( x − xr ) h′ ( x)⎤ + ( x − xr ) ⎡( n +1) h′ ( x) + ( x − xr ) h′′ ( x) ⎤
⎣ ⎦ ⎣ ⎦ } ⎤⎥
Et,i+1 = − ⎢ ( Et,i )
2
2( x − xr ) ⎡⎣nh( x) + ( x − xr ) h′ ( x) ⎤⎦
n−1
⎢ ⎥
⎣ ⎦x→xr
Convergencia del método de N-R para raíces múltiples
Simplificando
( n −1)
( Et,i )
2
Et,i+1 = −
2( x − xr )
Pero como
Et,i = ( x − xr )
Tendremos que la convergencia esta vez es
Et,i+1 =−
( n −1)
E t ,i
2
y, en consecuencia, en el caso de raíces múltiples la
convergencia es lineal.
Método de N-R relajado
Puesto que
f ( xi )
xi +1 = xi −
f ′ ( xi )
Genera una secuencia dada por x1, x2, x3,..,xn donde a cada
término se le agrega
f ( xi )
−
f ′ ( xi )
una idea para acelerar la convergencia del método consiste
en multiplicar el segundo término del lado derecho por ω de
manera que
f ( xi )
xi +1 = xi − ω 0.5 ≤ ω ≤ 1.5
f ′ ( xi )
Si ω<1 el método se denomina “subrelajado” mientras que
si ω>1 el método se denomina “sobrerelajado (SOR)”
Método de Punto Fijo
( n +1)
x − 2x + 3 = 0 ⇒ x =
2
;⇒ x =
2 2
Método de Punto Fijo
Despejando x tenemos x = 2x + 3
Para obtener
n x0 g(x0) x1 f(x3) Error (%)
0 4 3.31662479 3.31662479 1.36675042 20.60454
1 3.31662479 3.10374767 3.10374767 0.42575425 6.85871
2 3.10374767 3.03438550 3.03438550 0.13872434 2.28587
3 3.03438550 3.01144002 3.01144002 0.04589095 0.76194
4 3.01144002 3.00381092 3.00381092 0.01525820 0.25398
5 3.00381092 3.00127004 3.00127004 0.00508176 0.08466
6 3.00127004 3.00042332 3.00042332 0.00169344 0.02822
7 3.00042332 3.00014110 3.00014110 0.00056443 0.00941
8 3.00014110 3.00004703 3.00004703 0.00018814 0.00314
9 3.00004703 3.00001568 3.00001568 0.00006271 0.00105
Método de Punto Fijo
Para obtener
n x0 g(x0) x1 f(x3) Error (%)
0 4 1.500000 1.50000000 -3.75000000 166.66667
1 1.500000 -6.000000 -6.00000000 45.00000000 125.00000
2 -6.000000 -0.375000 -0.37500000 -2.10937500 1500.00000
3 -0.375000 -1.263158 -1.26315789 1.12188366 70.31250
4 -1.263158 -0.919355 -0.91935484 -0.31607700 37.39612
5 -0.919355 -1.027624 -1.02762431 0.11126034 10.53590
6 -1.027624 -0.990876 -0.99087591 -0.03641310 3.70868
7 -0.990876 -1.003051 -1.00305064 0.01221187 1.21377
8 -1.003051 -0.998984 -0.99898415 -0.00406236 0.40706
9 -0.998984 -1.000339 -1.00033873 0.00135504 0.13541
Para obtener
n x0 g(x0) x1 f(x3) Error (%)
0 4.0000E+00 6.5000E+00 6.5000E+00 2.6250E+01 38.46154
1 6.5000E+00 1.9625E+01 1.9625E+01 3.4289E+02 66.87898
2 1.9625E+01 1.9107E+02 1.9107E+02 3.6123E+04 89.72891
3 1.9107E+02 1.8252E+04 1.8252E+04 3.3311E+08 98.95318
4 1.8252E+04 1.6658E+08 1.6658E+08 2.7747E+16 99.98904
5 1.6658E+08 1.3874E+16 1.3874E+16 1.9248E+32 100.00000
6 1.3874E+16 9.6240E+31 9.6240E+31 9.2622E+63 100.00000
7 9.6240E+31 4.6311E+63 4.6311E+63 2.1447E+127 100.00000
y=x y=x
y=g(x)
Proceso Proceso
Divergente Divergente
y=g(x)
x0 x1 x2 x3 x1 x0 x2 x
x
Método de Punto Fijo
xi +1 = g ( xi ) (PF-3)
Sí la solución es xr tal que
xr = g ( xr ) (PF-4)
Convergencia del método de Punto Fijo
Despejando tenemos
g ( xr ) − g ( xi ) = g ′ (ξ )( xr − xi ) (PF-8)
Sustituyendo (PF-8) en (PF-5) obtenemos
xr − xi +1 = g ′ (ξ )( xr − xi ) (PF-9)
entonces
Et ,i +1
=
xr − xi +1
= g ′ (ξ ) < 1
(PF-12)
Et ,i xr − xi
y, en consecuencia
Et ,i +1 = Et ,i g ′ (ξ ) (PF-13)
Para convergencia xr, es cercano a x. Luego
Et ,i +1 = Et ,i g ′ ( xr ) (PF-14)
Luego, (PF-14) nos indica que el error disminuye de
manera lineal en el método de punto fijo. El factor de
proporcionalidad es el modulo de g’(xr) el cual debe
cumplir con g ′ ( xr ) < 1
Convergencia acelerada: Método de Aitken
{ pn }n=0 → p ⇒ ( pn+1 − p ) ≈ ε ( pn − p )
∞
para n >> 1
( pn − p ) , ( pn+1 − p ) , ( pn+ 2 − p )
pn pn + 2 − ( pn +1 − pn ) + pn 2 − 2 pn +1 pn
2
p=
pn + pn + 2 − 2 pn +1
p = n n+2
pn + pn + 2 − 2 pn +1
Simplificando llegamos a
( pn+1 − pn )
2
p = pn −
pn + pn + 2 − 2 pn +1
Convergencia acelerada: Método de Aitken
{ pn }n=0
∞
definida por
( pn+1 − pn )
2
pˆ n = pn −
pn + pn + 2 − 2 pn +1
1. Escoger p0 = p0 (0)
2.Calcular p1 = p1(0) = g ( p0 (0) )
3.Calcular p2 = p2 (0) = g ( p1(0) )
( p1 − p0 )
2
4.Calcular pˆ 0 = p0 −
p0 + p2 − 2 p1
p0( ) = pˆ 0
1
5.Hacer y repetir 1-4 hasta convergencia
i p0 p1 p2 p
1 0.500000000 0.057247412 0.443302792 0.26347976668787393
2 0.263479767 0.250253772 0.262019993 0.25648051003952466
3 0.256480510 0.256468892 0.256479230 0.25647436262679985
4 0.256474363 0.256474363 0.256474363 0.25647436262205831
y=x i p0 p
0.5
1 0.500000000 0.05724741238968151
2 0.057247412 0.44330279224377950
3 0.443302792 0.10029409146178031
4 0.100294091 0.40145951908104061
0.4 5 0.401459519 0.13342431453987363
6 0.133424315 0.36976630700916019
7 0.369766307 0.15925702773992101
8 0.159257028 0.34538437975725400
g(x)
0.3
9 0.345384380 0.17954978763845725
10 0.179549788 0.32644448924384140
0.2
0.1
y=g(x)
0
0 0.1 0.2 0.3 0.4 0.5 0.6
x
Aceleración de Aitken
>> diff(1/2-exp(-x/(2*pi))*sin(x))
ans =
1/2/pi*exp(-1/2*x/pi)*sin(x)-exp(-1/2*x/pi)*cos(x)
>> g_prima=inline('1/2/pi*exp(-1/2*x/pi)*sin(x)-exp(-1/2*x/pi)*cos(x)');
-0.4
-0.6
-0.9
>> roots([1,1,-3,-3])
ans =
1.7321
-1.7321
-1.0000
Aplicaciones con MATLAB
>> fzero('(x^2)*sin(x)-2',1)
ans =
1.4221
Aplicaciones con MATLAB
Out[3]= 8x → 0.256474<
2
0.5
0.25
x
0.2 0.4 0.6 0.8 1
-0.25
-0.5
-0.75
-1
-1.25
“La libertad de los muchos, perezosos o
seducidos por la tiranía, se salva casi
siempre por la determinación indomable de
unos pocos que pelean contra lo que parece
irremediable, contra lo verosímil predicado
por los acomodaticios, contra lo que la
prudencia sobornada por el dominio
aconseja como más recomendable”
Fernando Sabater
MECÁNICA COMPUTACIONAL I
Capítulo 2
MECÁNICA COMPUTACIONAL I
Capítulo 3
Sistemas de Ecuaciones
2
Capitulo 3
Solución numérica de sistemas de ecuaciones
Introducción
Notación, Matrices y Conceptos Preliminares
Eliminación de Gauss
Eliminación de Gauss-Jordan.
Determinación de la matriz inversa.
Métodos iterativos de Jacobi y Gauss-Seidel.
Métodos iterativos para ecuaciones no-lineales: método de las
sustituciones sucesivas
Métodos iterativos para ecuaciones no-lineales: método de Newton-
Raphson.
3
Introducción
Producto: n
F = AB = f ij f ij = ∑ aik bkj (8)
k =1
Propiedades:
A(B + C ) = AB + AC (9)
(B + C )D = BD + CD
En general
AB ≠ BA (10)
Si
AB = BA
entonces A y B conmutan.
Notación, Matrices y Conceptos Preliminares 10
Matriz nula:
aij = 0, ∀i, j (11)
Ejemplos:
⎡− 1 3⎤ ⎡ 1 2⎤
⎡1 2 − 1⎤ ⎢ ⎥ ⎢ ⎥
A=⎢ ⎥ B = ⎢ 2 1⎥ C = ⎢− 3 1 ⎥
⎣3 4 2 ⎦ ⎢⎣ 0 3⎥⎦ ⎢⎣ 2 4⎥⎦
Entonces,
⎡ 0 5⎤ ⎡15 20 10⎤
B + C = ⎢⎢− 1 2⎥⎥ ⎡− 4 2 ⎤
A(B + C ) = ⎢
0 37 ⎥ (B + C )A = ⎢⎢ 5 6 5 ⎥⎥
⎢⎣ 2 7 ⎥⎦ ⎣ ⎦
⎢⎣23 32 12⎥⎦
Notación, Matrices y Conceptos Preliminares 11
Si
⎡1 3 1 ⎤ ⎡ 2 1 3⎤
⎢ ⎥
A = ⎢2 0 − 1⎥ B = ⎢⎢− 3 1 2⎥⎥
⎢⎣4 1 2 ⎥⎦ ⎢⎣ 3 1 2⎥⎦
Entonces,
⎡ 11 4 0⎤ ⎡− 4 5 11⎤ ⎡16 9 7 ⎤
A2 = ⎢⎢− 2 5 0⎥⎥ AB = ⎢⎢ 1 1 4 ⎥⎥ BA = ⎢⎢ 7 − 7 0⎥⎥
⎢⎣ 14 14 7 ⎥⎦ ⎢⎣ 11 7 18⎥⎦ ⎢⎣13 11 6⎥⎦
⎡ − 1 2 − 2⎤ ⎡ 3 4 4⎤
A − B = ⎢⎢ 5 − 1 − 3⎥⎥ A + B = ⎢⎢− 1 1 1 ⎥⎥
⎢⎣ 1 0 0 ⎥⎦ ⎢⎣ 7 2 4⎥⎦
Notación, Matrices y Conceptos Preliminares 12
Sea
A = aij
la matriz compleja conjugada de A. Entonces se
cumple que
A+ B = A + B (12a)
AB = A B (12b)
La matriz traspuesta de A se define como
At = (g ij ) = (a ji ) (13)
Se verifica además que
( A + B ) = At + B t
t
(14a)
( ABC ) = C t B t At
t (14b)
Notación, Matrices y Conceptos Preliminares 13
Ejemplos:
Sea
⎡ 2 + i − 2 − i − 1 + 3i ⎤
A = ⎢⎢ i − 3 + 2i 2 ⎥⎥
⎢⎣3 − 2i 1+ i − 1 + i ⎥⎦
Entonces
⎡ 2 − i − 2 + i − 1 − 3i ⎤
A = ⎢⎢ − i − 3 − 2i 2 ⎥⎥
⎢⎣3 + 2i 1− i − 1 − i ⎥⎦ ⎡ 2 − i −i 3 + 2i ⎤
⎢
A = ⎢ − 2 + i − 3 − 2i 1 − i ⎥
t ⎥
⎢⎣− 1 − 3i 2 − 1 − i ⎥⎦
Notación, Matrices y Conceptos Preliminares 15
A A= I
*
y, en consecuencia A es unitaria.
Notación, Matrices y Conceptos Preliminares 18
⎡0 0 1 0⎤
Una matriz elemental nxn de ⎢0
segundo tipo es obtenida 1 0 0⎥⎥
R=⎢ (30)
intercambiando dos filas de la ⎢1 0 0 0⎥
matriz identidad nxn ⎢ ⎥
⎣0 0 0 1⎦
Notación, Matrices y Conceptos Preliminares 23
El producto QA lleva a
⎡1 0 0⎤⎡a11 a12 a13 a14 ⎤ ⎡ a11 a12 a13 a14 ⎤
⎢ ⎥ ⎢ ⎥ ⎢
QA = ⎢0 q 0⎥⎢a21 a22 a23 a24 ⎥ = ⎢qa21 qa22 qa23 qa24 ⎥⎥
⎢⎣0 0 1⎥⎦⎢⎣a31 a32 a33 a34 ⎥⎦ ⎢⎣ a31 a32 a33 a34 ⎥⎦
la multiplicación de la i-ésima (2 en este caso) fila de
A por q.
Si R es dado por (2<-->3)
⎡1 0 0⎤
R = ⎢⎢0 0 1⎥⎥
⎢⎣0 1 0⎥⎦
Notación, Matrices y Conceptos Preliminares 25
el producto RA lleva a
⎡1 0 0⎤⎡a11 a12 a13 a14 ⎤ ⎡a11 a12 a13 a14 ⎤
⎢ ⎥ ⎢ ⎥ ⎢
RA = ⎢0 0 1⎥⎢a21 a22 a23 a24 ⎥ = ⎢a31 a32 a33 a34 ⎥ ⎥
⎢⎣0 1 0⎥⎦⎢⎣a31 a32 a33 a34 ⎥⎦ ⎢⎣a21 a22 a23 a24 ⎥⎦
que corresponde al intercambio de filas.
Si S es dada por (s colocado en i=2,j=3)
⎡1 0 0⎤
S = ⎢⎢0 1 s ⎥⎥
⎢⎣0 0 1⎥⎦
Notación, Matrices y Conceptos Preliminares 26
el producto SA lleva a
⎡1 0 0⎤⎡a11 a12 a13 a14 ⎤
⎢ ⎥ ⎢
SA = ⎢0 1 s⎥⎢a21 a22 a23 a24 ⎥ ⎥
⎢⎣0 0 1⎥⎦⎢⎣a31 a32 a33 a34 ⎥⎦
(E3 − 4 E2 ) → (E3 )
(E4 + 3E2 ) → (E4 )
para obtener
E1 : x1 + x2 + 3 x4 =4 x1 + x2 + 3 x4 = 4
E2 : − x2 − x3 − 5 x4 = −7 − x2 − x3 − 5 x4 = −7
E3 : − 4 x2 − x3 − 7 x4 = −15 3 x3 + 13 x4 = 13
E4 : 3 x2 + 3 x3 + 2 x4 =8 − 13 x4 = −13
31
Eliminación de Gauss
⎡ ⎛ a ji ⎞ ⎤ j = i + 1, i + 2,..., n
⎢E j − ⎜⎜ ⎟⎟ Ei ⎥ → (E j )
⎣ ⎝ aii ⎠ ⎦ aii ≠ 0
37
Eliminación de Gauss
⎡1 − 1 2 −1 −8 ⎤
⎢2 − 2 3 − 3 − 20⎥⎥
⎢
⎢1 1 1 0 −2 ⎥
⎢ ⎥
⎣1 3 4 3 4 ⎦
40
Eliminación de Gauss
⎡1 − 1 2 −1 −8 ⎤ ⎡1 − 1 2 − 1 − 8 ⎤
⎢2 − 2 3 − 3 − 20⎥⎥ ⎢0 0 − 1 − 1 − 4 ⎥
⎢ ⎢ ⎥
⎢1 1 1 0 −2 ⎥ ⎢0 2 − 1 1 6⎥
⎢ ⎥ ⎢ ⎥
⎣1 3 4 3 4 ⎦ ⎣0 4 2 4 12 ⎦
Pivote
41
Eliminación de Gauss
⎡ ⎛ a43 ⎞ ⎤
⎢ E4 − ⎜⎜ ⎟⎟ E3 ⎥ → (E4 )
⎣ ⎝ a33 ⎠ ⎦
para obtener
⎡1 − 1 2 − 1 − 8 ⎤ ⎡1 − 1 2 − 1 − 8 ⎤
⎢0 2 − 1 1 6 ⎥ ⎢0 2 − 1 1 ⎥
⎢ ⎥ ⎢ 6 ⎥
⎢0 0 − 1 − 1 − 4 ⎥ ⎢0 0 − 1 − 1 − 4 ⎥
⎢ ⎥ ⎢ ⎥
⎣0 0 4 2 0⎦ ⎣0 0 0 − 2 − 16⎦
La sustitución hacia atrás nos dará los valores buscados.
44
Eliminación de Gauss
n
ai ,n +1 − ∑a
j = i +1
ij xj
xi =
aii
47
Uso de MatLab
Hallar la solución de un
sistema de ecuaciones
lineales utilizando
MATLAB es muy
sencillo.
Introduciendo la matriz A
y el vector de términos
independientes b tenemos
que la solución del
sistema de ecuaciones
lineales es:
48
⎡ 2 − 7 4 9⎤
⎢1 9 − 6 1 ⎥
⎢ ⎥
⎢⎣− 3 8 5 6⎥⎦
50
Eliminación de Gauss-Jordan
Realizando la operación
((1 / 2)E1 ) → (E1 )
obtenemos la matriz ampliada
⎡ 1 − 7 / 2 2 9 / 2⎤
⎢1 9 − 6 1 ⎥
⎢ ⎥
⎢⎣− 3 8 5 6 ⎥⎦
⎧ (E2 − (1)E1 ) → (E2 )
Luego, realizamos las operaciones ⎨
⎩(E3 − (−3) E1 ) → (E3 )
⎡1 − 7 / 2 2 9/2 ⎤
⎢0 25 / 2 − 8 − 7 / 2⎥
⎢ ⎥
⎢⎣0 − 5 / 2 11 39 / 2 ⎥⎦
51
Eliminación de Gauss-Jordan
Obtenemos el resultado
⎡1 − 7 / 2 2 9/2 ⎤ ⎡1 0 − 6 / 25 88 / 25 ⎤
⎢0 1 − 16 / 25 − 1 / 25⎥⎥ ⎢0 1 − 16 / 25 − 7 / 25⎥
⎢ ⎢ ⎥
⎢⎣0 − 5 / 2 11 39 / 2 ⎥⎦ ⎢⎣0 0 47 / 5 94 / 5 ⎥⎦
Continúe el procedimiento realizando
⎧ ⎛⎛ 1 ⎞ ⎞
⎪ ⎜⎜ ⎟ E3 ⎟ → (E3 ) Normalización de E3
⎪ ⎝ ⎝ 47 / 5 ⎠ ⎠
⎨
⎪ (E1 − (− 6 / 25)E3 ) → (E1 )
Nueva E3
⎪⎩(E2 − (−16 / 25) E3 ) → (E2 )
53
Eliminación de Gauss-Jordan
Llegamos entonces a
⎡1 0 0 4 ⎤
⎢0 1 0 1 ⎥
⎢ ⎥
⎢⎣0 0 1 2⎥⎦
La sustitución hacia atrás ahora da directamente
x3 = 2
x2 = 1
x1 = 4
54
Eliminación de Gauss-Jordan
(E j − a ji Ei ) → (E j )
Nota: revisar el pivote para garantizar que no es nulo.
En ese caso, proceder como con la Eliminación de
Gauss clásica.
55
⎡ 1 0 0⎤ ⎡ 1 − 7 / 2 2 9 / 2⎤
S1C1 = ⎢⎢− 1 1 0⎥⎥ ⎢⎢ 1 9 − 6 1 ⎥⎥
⎢⎣ 0 0 1⎥⎦ ⎢⎣− 3 8 5 6 ⎥⎦
⎡ 1 −7/2 2 9/2 ⎤
⎢ ⎥
S1C1 = ⎢ 0 25 / 2 − 8 − 7 / 2⎥
⎢⎣− 3 8 5 6 ⎥⎦
59
Determinación de la matriz inversa
y S2 dado por
⎡1 0 0⎤ ⎡ 1 −7/2 2 9/2 ⎤
S 2 = ⎢⎢0 1 0⎥⎥ ⎢ ⎥
C2 = ⎢ 0 25 / 2 − 8 − 7 / 2⎥
⎢⎣3 0 1⎥⎦ ⎢⎣− 3 8 5 6 ⎥⎦
⎡1 0 0⎤ ⎡ 1 − 7 / 2 2 9/2 ⎤
S 2C2 = ⎢⎢0 1 0⎥⎥ ⎢⎢ 0 25 / 2 − 8 − 7 / 2⎥⎥
⎢⎣3 0 1⎥⎦ ⎢⎣− 3 8 5 6 ⎥⎦
⎡1 −7/2 2 9/2 ⎤
S 2C2 = ⎢⎢0 25 / 2 − 8 − 7 / 2⎥⎥ = C3
⎢⎣0 − 5 / 2 11 39 / 2 ⎥⎦
60
Determinación de la matriz inversa
Para llegar a
S 4 S3Q2 S 2 S1Q1C = C6
De manera similar los pasos siguientes se expresarán
como
⎡1 0 0 4 ⎤
⎢ ⎥
S 6 S5Q3 S 4 S3Q2 S 2 S1Q1C = C9 = ⎢0 1 0 1⎥ = [I x ]
⎢⎣0 0 1 2⎥⎦
Escrito en notación compacta
EC = E [ A b ] = [I x ] EA = I
Teniendo entonces que E es la matriz inversa de A
con
E = S 6 S5Q3 S 4 S3Q2 S 2 S1Q1
62
Determinación de la matriz inversa
j =1
j ≠i
xi(1) = i = 1,2,..., n
aii
El procedimiento se repite de manera secuencial
n
bi − ∑ aij x j (k )
j =1
j ≠i
xi( k +1) = i = 1,2,..., n
aii
hasta verificar algún criterio de convergencia. Un
criterio usual lo constituye la norma L2
71
Métodos Iterativos
n
∑x ( k +1)
i −x(k ) 2
i
L= i =1
n
∑x
i =1
( k +1) 2
i
x ( 0 ) = [0,0,0,0]
t
73
Métodos Iterativos
k 0 1 2 3 4 5 6 7 8 9 10
1 0 0,6000 1,0473 0,9360 1,0167 0,9913 1,0050 1,0001 1,0025 1,0016 1,0020
2 0 2,2727 1,7159 2,0518 1,9539 2,0106 1,9920 2,0018 1,9983 2,0000 1,9994
3 0 -1,1000 -0,8223 -1,0574 -0,9794 -1,0195 -1,0045 -1,0115 -1,0087 -1,0099 -1,0094
4 0 1,8750 0,8852 1,1288 0,9734 1,0199 0,9936 1,0024 0,9979 0,9995 0,9988
Dif = 1,00E+00 2,85E-01 3,21E-02 6,85E-03 1,07E-03 2,08E-04 3,50E-05 6,57E-06 1,14E-06 2,10E-07
Diferencia
1,00E+00
1,00E-01 1 2 3 4 5 6 7 8 9 10
1,00E-02
Norma L2
1,00E-03
1,00E-04
1,00E-05
1,00E-06
1,00E-07
Iteración
75
Métodos Iterativos
El método de Gauss-Seidel, las aproximaciones se
van utilizando a medida que se generan. Esto es, una
( k +1)
vez calculados los valores de las aproximaciones i x
en la ecuación i+1 se sustituyen estos valores junto
con los de la iteración anterior
xi(k )
para obtener como aproximación
i −1 n
bi − ∑ aij x (j k +1) − ∑ ij j
a x (k )
( k +1) j =1 j =i +1
x
i = i = 1,2,..., n
aii
76
Métodos Iterativos
Diferencia
1,00E+00
1,00E-03 1 2 3 4 5 6 7 8 9 10
Norma L2
1,00E-06
1,00E-09
1,00E-12
1,00E-15
1,00E-18
Iteración
79
Métodos Iterativos
No siempre el método de Gauss-Seidel converge mas
rápido que el de Jacobi, pero en general, si lo hace.
Es posible probar que si el valor absoluto del
elemento de la diagonal es mayor que la suma de los
valores absolutos de los elementos fuera de la
diagonal (matriz diagonalmente dominante) esto será
suficiente para garantizar la convergencia.
Esto debe ser tomado en cuenta a la hora de preparar
programas de cálculo.
80
− x1 x2 10π − 3
e + 20 x3 + =0
3
Las funciones fi se reescriben de manera que
cos( x2 x3 )
x1 = +1
3 6 1 − x1x2 10π − 3
x3 = − e −
x12 + sin( x3 ) + 1.06 20 60
x2 = − 0 .1
9
83
Métodos Iterativos para Ec. No lineales: MSS
Luego, iteramos sobre las ecuaciones
x ( k +1)
=
(
cos x2( k ) x3( k ) ) +1
1 3 6
x2( k +1) =
(x )
(k ) 2
+ sin( x3( k ) ) + 1.06
1
− 0 .1
9
1 − x1( k ) x2( k ) 10π − 3
x3( k +1) =− e −
20 60
Si partimos de la aproximación inicial x(0)=(0,0,0)
tenemos
k 0 1 2 3 4 5 6 7
1 0 0,50000000 0,49999053 0,50000000 0,50000000 0,50000000 0,50000000 0,50000000
2 0 0,01439589 0,00000000 0,00001859 0,00000000 0,00000002 0,00000000 0,00000000
3 0 -0,52359878 -0,52324017 -0,52359878 -0,52359831 -0,52359878 -0,52359877 -0,52359878
Dif= 0,52436292 0,00020737 1,2903E-07 3,4566E-10 2,1652E-13 6,1734E-16 3,867E-19
Norma L2 = 1 0,00039592 2,4617E-07 6,5946E-10 4,1308E-13 1,1778E-15 7,3775E-19
84
Métodos Iterativos para Ec. No lineales: MSS
En la variante de Gauss-Seidel obtenemos
x( k +1)
=
(
cos x2( k ) x3( k ) ) +1
1 3 6
x2( k +1) =
(x )
( k +1) 2
1 + sin( x3( k ) ) + 1.06
− 0 .1
9
1 − x1( k +1) x2( k +1) 10π − 3
x3( k +1) =− e −
20 60
Si partimos de la aproximación inicial x(0)=(0,0,0)
tenemos
k 0 1 2 3 4 5 6 7
1 0 0,50000000 0,49996635 0,50000000 0,50000000 0,50000000 0,50000000 0,50000000
2 0 0,02717248 0,00003399 0,00000005 0,00000000 0,00000000 0,00000000 0,00000000
3 0 -0,52292406 -0,52359793 -0,52359877 -0,52359878 -0,52359878 -0,52359878 -0,52359878
Dif= 0,52418791 0,00073695 2,2855E-09 2,0591E-15 3,6779E-21 6,568E-27 1,2326E-32
Norma L2 = 1 0,00140607 4,3603E-09 3,9285E-15 7,0167E-21 1,2531E-26 2,3516E-32
85
Métodos Iterativos para Ec. No lineales: MSS
Comparando ambas versiones del método tenemos
Comportamiento del Error
10
0,1
1 2 3 4 5 6
0,001
1E-05
1E-07 Jacobi (Dif)
Diferencia, L2
1E-09
Jacobi (L2)
1E-11
1E-13
Gauss-Seidel
1E-15
(Dif)
1E-17
Gauss-Seidell
1E-19 (L2)
1E-21
1E-23
1E-25
1E-27
Iteración
86
Métodos Iterativos para Ec. No lineales: MSS
Las condiciones que garantizan la convergencia de
estos métodos están ligadas con la naturaleza de las
funciones Fi. Si éstas son continúas en una región del
sub-espacio de vectores (x1,x2,...,xn) donde los xi
pertenecen a un intervalo definido (ai,bi) y las
derivadas parciales de las Fi también son continuas y
acotadas en ese sub espacio, entonces las funciones
Fi tienen un punto fijo en dicho sub-espacio.
87
10π − 3
e − x1 x2 + 20 x3 + =0
3
Las funciones fi vienen dadas por
f1 (x ) = 3 x1 − cos(x2 x3 ) − 1
2
f 2 (x ) = x12 − 81( x2 + 0.1) + sin( x3 ) + 1.06
2
10π − 3
f 3 (x ) = e − x1 x2
+ 20 x3 +
3
93
Métodos Iterativos para Ec. No lineales: NR
Luego, el vector F(x) se construye como
⎡ ⎤
⎢ 3x1 − cos( x2 x3 ) − 1
⎥
2
F ( x ) = ⎢ x12 − 81( x2 + 0.1) + sin( x3 ) + 1.06⎥
2
⎢ ⎥
⎢ 10π − 3 ⎥
e − x1 x2 + 20 x3 +
⎢⎣ 3 ⎥⎦
La matriz Jacobiana se construye a partir de
∂f1 ∂f 2 ∂f 3
=3 = 2 x1 = − x2 e − x1 x2
∂x1 ∂x1 ∂x1
∂f1 ∂f 2 ∂f 3
= x3 sin( x2 x3 ) = −162( x2 + 0.1) = − x1e − x1 x2
∂x2 ∂x2 ∂x2
∂f1 ∂f 2 ∂f 3
= x2 sin( x2 x3 ) = cos( x3 ) = 20
∂x3 ∂x3 ∂x3
94
Métodos Iterativos para Ec. No lineales: NR
⎥
⎢
(0) (0) 10π − 3 ⎥
e − x1 x2 + 20 x3( 0 ) +
⎢⎣ 3 ⎥⎦
95
Métodos Iterativos para Ec. No lineales: NR
con y solución de
J (x ( 0 ) ){y ( 0 ) } = F (x ( 0 ) )
96
Métodos Iterativos para Ec. No lineales: NR
x1 x2 x3 Dif Iter Anterior
0.50000000 -0.01688882 -0.52359877 1.00000000
niter=5
do k=1,niter
do i=1,n
x(i) = x(i) - y(i)
enddo
suma1=0.
suma2=0.
do i=1,n
suma1=suma1+(x1-x(1))**2.+(x2-x(2))**2.+(x3-x(3))**2.
suma2=suma2+(x(1))**2.+(x(2))**2.+(x(3))**2.
enddo
dif=suma1/suma2
x1=x(1)
x2=x(2) Probando la convergencia
x3=x(3)
enddo
100
Métodos Iterativos para Ec. No lineales: NR
function f1(x1,x2,x3)
double precision x1,x2,x3
f1=3.*x1-cos(x2*x3)-0.5
end Definiendo las funciones para
function df1dx1(x1,x2,x3)
cada matriz
double precision x1,x2,x3
df1dx1=3.
end
101
Métodos Iterativos para Ec. No lineales: NR
function F = myfun(x)
MATLAB posee un F = [3*x(1) - cos(x(2)*x(3)) - 1/2;
comando para resolver x(1)^2 - 81*((x(2)+0.1)^2) + sin(x(3)) + 1.06 ;
x2
x-p
x
δ’ δ
p
x1
∑ (b ( p )J ) = δ
n
ij jk ik i=k
j =1
ALGORITMOS
Eliminación Gaussiana
Eliminación de Gauss-Jordan (con cálculo de matriz
inversa)
Métodos iterativos de Jacobi y Gauss-Seidel.
Métodos de las sustituciones sucesivas para ecuaciones
no-lineales
Métodos de Newton-Rawson para ecuaciones no-
lineales
110
MECÁNICA COMPUTACIONAL I
Capítulo 3
Sistemas de Ecuaciones