Upload
duongquynh
View
231
Download
0
Embed Size (px)
Citation preview
Análisis Numérico para Ingeniería
Clase Nro. 8
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 2
Sistemas de Ecuaciones No Lineales
Temas a tratar:
Cálculo de Raíces de Polinomios.
Análisis de Sensibilidad.
Generalización para Sistemas de Ecuaciones.
Método de Punto Fijo Sistemático
Método de Newton
Método de Newton Modificado (Quasi-Newton)
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 3
Cálculo de Ráices de Polinomios
Existen métodos especialmente diseñados para hallar raices de polinomios.
Uno de ellos es el método de QD (Quotient Difference) (No lo veremos en este curso, pero si alguien está interesado, puede verlo en http://www3.fi.mdp.edu.ar/analisis/temas/polinomios/qd.htm)
Este método calcula las raíces reales y los factores cuadráticos. Combinado con el método de Bairstow permite calcular también las raíces complejas.
Deflación
Otra forma consiste en calcular alguna raíz por cualquiera de los métodos vistos y dividir el polinomio con el método de Ruffini, para calcular las raíces restantes.
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 4
En general, los problemas de Ingeniería se suelen expresar explícita o implícitamente, en forma parámetrica, de forma tal que la solución propuesta mantenga su validez, aún ante una variación de dichos parámetros.
Es decir, no se expresa la solución para un ”único valor” sino para un rango de valores.
Aplicaciones en Ingeniería
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 5
Sensibilidad de Polinomios
Los coeficientes que conforman los polinomios son en general valores inexactos, debido a que:
Provienen de datos empíricos.
Son el resultado de extensos y complicados cálculos que pueden haber introducido errores, ya sean de representación, de redondeo ó propios del algoritmo utilizado.
Por lo tanto, nos interesa saber:
Cómo se ven afectados los valores de las raíces debido a la imprecisión de los coeficientes.
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 6
Análisis de Sensibilidad
pnx =an xnan−1 xn−1⋯a1 xa0
Supongamos que tenemos un polinomio cuyos coeficientes son ”exactos”
Al cuál dividimos por an, es decir, lo hacemos mónico.
Ahora consideremos un polinomio perturbado
Al cuál dividimos por a*
n,
pnx =xnn−1 xn−1
⋯1 x0
pn*x =an
* xnan−1
* xn−1⋯a1
* xa0*
pn*x =xn
n−1* xn−1
⋯1* x0
*
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 7
Análisis de Sensibilidad
Δ ai=ai−ai*⇒ai=ai
*+ Δ ai
Sea
Por lo tanto:
Y sea Z el cero verdadero y Z* el cero del polinomio perturbado, entonces el error en Z será:
Δ αi=αi−αi*
⇒ αi=αi*+ Δ αi para i=0, 1, 2,..., n-1
Δ Z=Z−Z*=ε ⇒ Z=Z*
+ ε
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 8
pn*(z*
)=z* n+αn−1
* z* n-1+⋯+α1
* z*+α0
*=0
p(z)=(z*+ ε)
n+ [(αn−1
*+ Δ αn−1)(z*
+ ε)n−1
]+
+[(αn−2*
+ Δ αn−2)(z*+ ε)
n−1]+⋯+
+[(α1*+ Δ α1)(z*
+ ε)]+
+(α0*+ Δ α0)=0
De esta forma, podemos expresar el polinomio perturbado evaluado en una de sus raíces como:
Por lo tanto, podemos expresar el polinomio exacto como:
Análisis de Sensibilidad
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 9
(a+b)n=an
+(n1)an−1 b+(n2)an−2 b2
+(n3)an−3 b3
+⋯+( nn−1)abn−1
+bn
Binomio de Newton
Donde cada coeficiente binomial se calcula de la forma:
(nk )=n!
k !⋅(n−k )!
Ahora bien, el Binomio de Newton responde a la siguiente expresión:
Análisis de Sensibilidad
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 10
p(z)=(z*+ ε)
n+ [(αn−1
*+ Δ αn−1)(z*
+ ε)n−1
]+
+[(αn−2*
+ Δ αn−2)(z*+ ε)
n−1]+⋯+
+[(α1*+ Δ α1)(z*
+ ε)]+
+(α0*+ Δ α0)=0
Por lo tanto, podemos expandir la expresión anterior, por medio del binomio de Newton.
Análisis de Sensibilidad
(a+b)n=an+(n1)an−1 b+(n2)an−2 b2+(n
3)an−3 b3+⋯+( nn−1)a bn−1+bn
Binomio de Newton
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 11
p(z)−p*( z*
)=[ z* n+n z* n-1
ε+(n2) z* n-2
ε2+⋯+ε
n]+
+[ z* n-1αn−1
*+(n−1) z* n-2
εαn−1*
+⋯+εn−1
αn−1*
]+
+[ z* n-1Δαn−1+(n−1) z* n-2
εΔαn−1+⋯+εn−1
Δαn−1]+
+[ z* n-2αn−2
*+(n−2) z* n-3
εαn−2*
+⋯+εn−2
αn−2*
]+
+[ z* n-2Δαn−2+(n−2) z* n-3
εΔαn−2*
+⋯+εn−2
Δαn−2]++ ⋯⋯⋯⋯⋯ ++[ z*
α1*+εα1
*+ z*
Δα1+εΔα1]+
+[α0*+Δα0]-
−[ z* n+αn−1* z* n-1+⋯+α1
* z*+α0*]≈
≈[n⋅z* n-1+(n−1)⋅z* n-2
αn−1*
+⋯+α1*]⋅ε+
+Δαn−1 z* n-1+Δαn−2 z* n-2+⋯+Δα1 z*+Δα0≈0
Análisis de Sensibilidad
Y despreciandolos términos de Ɛ2 y superiores
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 12
p '*(z*
)⋅ε ≈ −∑k=0
n−1
Δαk z* k
p( z)−p*(z*
) ≈ p '*(z*
)⋅ε + ∑k=0
n−1
Δαk z* k≈0
Por lo tanto podemos escribir que:
Y reordenando, obtenemos:
Análisis de Sensibilidad
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 13
∣Δ z∣ = ∣ε∣ ≈∣∑k=0
n−1
Δαk z* k∣∣p '*
(z*)∣
Δ z = ε ≈
−∑k=0
n−1
Δαk z* k
p '*(z*)
Por lo que tomando valor absoluto, obtenemos:
Análisis de Sensibilidad
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 14
∣Δαk∣≤Δ
∣Δ z∣máx=∣ε∣≈1+∣z*∣+∣z*∣
2+⋯+∣z*∣
n−1
∣p '*(z*
)∣⋅Δ
Y si resulta válida la aproximación lineal, tenemos:
Si acotamos a cada coeficiente, como:
Análisis de Sensibilidad
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 15
∣Δ z∣máx=∣ε∣≈1+∣z*∣+∣z*∣
2+⋯+∣z*∣
n−1
∣p '*(z*
)∣⋅Δ≈
∣z*∣n−1
(∣z*∣−1)⋅∣p '*(z*)∣⋅Δ
Y si resulta válida la aproximación lineal, tenemos:
La sumatoria de la serie de potencias es :
Análisis de Sensibilidad
1+∣z*∣+∣z*∣2+⋯+∣z*∣
n−1= ∑
k=0
n−1
∣z* k∣ =∣z*∣
n−1
∣z*∣−1
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 16
Ejemplo de raíces de polinomios
s6−7.121 s5
+20.360142 s4−29.66350899 s3
+22.9241445 s2−8.720335761 s+1.227726208
Se desea calcular las raíces del siguiente polinomio exacto.
Graficando el intervalo de interés
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 17
Valores de las Raíces
Raíz
1 1.84300015693992 2.45220369184118x10-10
2 1.58299919931362 5.49853478720719x10-12
3 1.30346879703518 4.14609359409950x10-9
4 1.30251184663557 5.67852189857672x10-9
5 7.65000053167659x10-1 2.16840434497101x10-19
6 3.23999998139993x10-1 0
x abs(f(x)
Vemos que todas las raíces obtenidas son reales
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 18
Ejemplo de Raíces de Polinomios
1.001s6−7.121 s5+20.360142 s4−29.66350899 s3+22.9241445 s2−8.720335761 s+1.227726208
Perturbación
Repetimos el procedimiento, pero perturbando uno de sus coeficientes.
Graficando el intervalo de interés
Raíces Complejas
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 19
0.999s6−7.121 s5+20.360142 s4−29.66350899 s3+22.9241445 s2−8.720335761 s+1.227726208
Perturbación
Repetimos el procedimiento, pero perturbando uno de sus coeficientes.
Perturbación
Raíces Complejas
Graficando el intervalo de interés
Ejemplo de Raíces de Polinomios
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 20
Encontrar la solución de un sistema de n ecuaciones no lineales con n incógnitas.
f 1 x1, x2, x3,, xn−1 , xn=0f 2x1, x2, x3,, xn−1 , xn=0f 3x1, x2, x3,, xn−1 , xn=0⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯f nx1, x2, x3,, xn−1 , xn=0
Esto significa hallar el vector:
X=x1, x2, x3,, xn−1 , xn tal que F X =0
Sistema de Ecuaciones No Lineales
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 21
Ejemplo de un Sistema de 2 ecuaciones
Raíz
Raíz
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 22
Método de Punto Fijo
En el caso multidimensional, utilizaremos la versión sistemática del método de Punto Fijo, por lo tanto construiremos un esquema iterativo similar al visto en el caso de una sola variable.
F X =0
Partimos del sistema:
X=X−⋅F X =0
Y lo reescribimos como:
Siendo Λ una matriz no singular.
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 23
Método de Punto Fijo
De esta forma, podemos denominar:
Φ ' (X )=I−Λ⋅F ' (X )
Si la función vectorial F(X) tiene derivada contínua en todo el dominio Ω:
Es posible definir el siguiente proceso iterativo:
Φ(X )=X−Λ⋅F (X )
X k+1=Φ(X k) para (k=1, 2, 3, ... )
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 24
Método de Punto Fijo
Este esquema iterativo converge rápidamente si Φ'(X) resulta pequeña en norma, para todo punto del dominio, por lo tanto, elegiremos la matriz Ʌ de forma tal que, dado un conjunto de valores iniciales X
0:
X k+1=Φ(X k) para (k=1, 2, 3, ... )
Φ ' (X0)=I−Λ⋅F ' (X0)=0
De esta forma, si la matriz Jacobiana F '(X) es no singular, tenemos:
=[F ' X 0]−1
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 25
Método de Punto Fijo
Si en el proceso de cálculo de Ʌ resultara que F'(X0) es singular, deberá
elegirse un nuevo valor para X0, de forma tal que se verifique que el
determinante de Ʌ es distinto de cero.
=[F ' X 0]−1
X k1=X k−⋅F X k=X k−[F ' X0]−1⋅F X k para (k=1, 2, 3, ... )
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 26
Teorema de Punto Fijo
F está definida y es contínua en todo Ω.
Para cada punto X que pertenece a Ω, el punto F(X) también cae dentro de Ω.
Existe una constante L<1 tal que dados dos puntos X, Y que pertenezcan a Ω, se verifica la siguiente desigualdad.
∥F X −F Y ∥ ≤ L⋅∥X−Y∥
Sea Ω un dominio cerrado en Rn y dada una función F que satisfaga las siguientes condiciones.
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 27
Teorema de Punto Fijo
La ecuación vectorial X = Φ(X) posee exactamente una solución S en Ω.
Para cualquier elección del punto inicial X0
que
pertenece a Ω, la sucesión definida por el algoritmo de aproximaciones sucesivas converge hacia la solución S.
Para k=1,2,... se cumple la siguiente desigualdad.
∥X k−S∥ ≤L
1−L⋅∥X k−X k−1∥
Entonces se verifican las siguientes proposiciones:
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 28
Teorema de Punto Fijo
∥X k−S∥ ≤Lk
1−L⋅∥X1−X0∥
En consecuencia, tenemos que:
L ≈∥X k1
−X k ∥
∥X k −X k−1∥
Donde L puede ser aproximada por:
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 29
Sistema deEcuaciones
{f 1 x , y =x2 y2
−4
f 2x , y =ex y−1
Ejemplo de un Sistema de 2 ecuaciones
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 30
Función con n variables
FUNCTION v_func(v, cant_ec )! Calcula el vector de funciones evaluado en V! V es un vector de cant_ec variablesINTEGER cant_ecREAL(8) v(cant_ec), v_func(cant_ec)
v_func(1) = 4 - v(1)*v(1) - v(2)*v(2) v_func(2) = 1 - exp(v(1)) - v(2)
END FUNCTION
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 31
Matriz JacobianaLa matriz jacobiana F'(X), ó J(X), es una matriz formada por las derivadas parciales de primer orden de una función F.
F X =[f 1x1, x2, x3,, xn−1 , xn
f 2 x1, x2, x3,, xn−1 , xn
f 3 x1, x2, x3,, xn−1 , xn
⋯⋯⋯⋯⋯⋯⋯⋯⋯f n x1, x2, x3, , xn−1 , xn
]
J x1, x2, , xn=[∂ f 1
∂ x1
∂ f 1
∂ x2
⋯∂ f 1
∂ xn
∂ f 2
∂ x1
∂ f 2
∂ x2
⋯∂ f 2
∂ xn
⋯ ⋯ ⋱ ⋮∂ f n
∂ x1
∂ f n
∂ x2
⋯∂ f n
∂ xn
]MatrizJacobiana
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 32
Matriz Jacobiana
FUNCTION m_jacob(V, cant_ec )! Calcula la matriz jacobiana evaluada en V! V es un vector de n variablesINTEGER cant_ec,i,jREAL(8) V(cant_ec), m_jacob(cant_ec, cant_ec)
m_jacob(1,1) = -2*V(1) m_jacob(1,2) = -2*V(2) m_jacob(2,1) = -exp(V(1)) m_jacob(2,2) = -1
END FUNCTION
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 33
Método de Punto Fijo (Sistemas)
SUBROUTINE p_fijo_sist(V_inic, cant_ec, tol, max_iter, formato)INTEGER iter, max_iter, pivote(cant_ec), info, cant_ec,i,kREAL(8) V_inic(cant_ec), V(cant_ec), DV(cant_ec), J(cant_ec, cant_ec), tol, errorCHARACTER*15 formato
iter=0error=2*tolV=V_inic
WRITE (*, formato) iter, V
! Calcula la matriz Jacobiana J = m_jacob(V, cant_ec)
! Transforma la matriz Jacobiana en una matriz LU CALL DGETRF( cant_ec, cant_ec, J, cant_ec, pivote, info )
! Calcula la inversa de la matriz Jacobiana CALL DGETRI( cant_ec, J, cant_ec, pivote, DV, cant_ec, info )
Sique en la próxima página
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 34
Método de Punto Fijo (Sistemas)
DO WHILE ((error > tol) .AND. (iter < max_iter))
! Evalúa las funciones en el punto actual DV = v_func(V, cant_ec)
! Calcula los nuevos valores V = V - MATMUL(J, DV) ! Calcula el error error = normaM_v(DV)
iter = iter + 1
! Imprime los valores calculados WRITE (*, formato) iter, V ENDDO END SUBROUTINE
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 35
Utilización de Librerías
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 36
Librería LAPACK ( DGETRF )
file dgetrf.f dgetrf.f plus dependenciesprec doublefor Computes an LU factorization of a general matrix, using partial,pivoting with row interchanges.gams (General Algebraic Modeling System)
file dgetri.f dgetri.f plus dependenciesprec doublefor Computes the inverse of a general matrix, using the LU factorization, computed by DGETRF.gams (General Algebraic Modeling System)
file dgetrs.f dgetrs.f plus dependenciesprec doublefor Solves a general system of linear equations AX=B, A**T X=B,or A**H X=B, using the LU factorization computed by DGETRF.gams (General Algebraic Modeling System)
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 37
Librería LAPACK ( DGETRF )
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 38
Librería LAPACK ( DGESV )
SUBROUTINE DGESV( N, NRHS, A, LDA, IPIV, B, LDB, INFO )** -- LAPACK driver routine (version 3.2) --* -- LAPACK is a software package provided by Univ. Of * Tennessee, --* -- Univ. of California Berkeley, Univ. of Colorado * Denver and NAG Ltd..--* November 2006** .. Scalar Arguments .. INTEGER INFO, LDA, LDB, N, NRHS* ..* .. Array Arguments .. INTEGER IPIV( * ) DOUBLE PRECISION A( LDA, * ), B( LDB, * )* ..
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 39
Librería LAPACK ( DGESV )
* =======* Purpose* =======** DGESV computes the solution to a real system of linear equations* A * X = B,* where A is an N-by-N matrix and X and B are N-by-NRHS matrices.** The LU decomposition with partial pivoting and row interchanges* is used to factor A as * A = P * L * U,* where P is a permutation matrix, L is unit lower triangular, and* U is upper triangular. The factored form of A is then used to* solve the system of equations A * X = B.
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 40
Librería LAPACK ( DGESV )* =========* Arguments* =========** N (input) INTEGER* The number of linear equations, i.e., the order of the matrix A. N >= 0.** NRHS (input) INTEGER* The number of right hand sides, i.e., the number of columns of the matrix B. NRHS >= 0.** A (input/output) DOUBLE PRECISION array, dimension (LDA,N)* On entry, the N-by-N coefficient matrix A.* On exit, the factors L and U from the factorization* A = P*L*U; the unit diagonal elements of L are not stored.** LDA (input) INTEGER* The leading dimension of the array A. LDA >= max(1,N).** IPIV (output) INTEGER array, dimension (N)* The pivot indices that define the permutation matrix P;* row i of the matrix was interchanged with row IPIV(i).** B (input/output) DOUBLE PRECISION array, dimension (LDB,NRHS)* On entry, the N-by-NRHS matrix of right hand side matrix B.* On exit, if INFO = 0, the N-by-NRHS solution matrix X.** LDB (input) INTEGER* The leading dimension of the array B. LDB >= max(1,N).** INFO (output) INTEGER* = 0: successful exit* < 0: if INFO = -i, the i-th argument had an illegal value* > 0: if INFO = i, U(i,i) is exactly zero. The factorization has been* completed, but the factor U is exactly singular, so the solution could not be computed.
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 41
Método de Newton
Si tomamos un sistema de ecuaciones no lineales y desarrollamos las funciones en Serie de Taylor, y nos quedamos con el primer término, obtenemos:
0=f 1+∂ f 1
∂ x(s−x0)+
∂ f 1
∂ y(t− y0)+
∂ f 1
∂ z(r−z0)+⋯
0=f 2+∂ f 2
∂ x(s−x0)+
∂ f 2
∂ y(t− y0)+
∂ f 2
∂ z(r−z0)+⋯
⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯⋯
0=f n+∂ f n
∂ x(s−x0)+
∂ f n
∂ y(t− y0)+
∂ f n
∂ z(r−z0)+⋯
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 42
Método de Newton
Como se puede apreciar, cada función es evaluada en la raíz aproximada (x
0, y
0, z
0, …), por lo tanto, hemos transformado un
sistema de n ecuaciones no lineales, en un sistema de ecuaciones lineales.
Xk1=X k
−[J X k ]
−1⋅F Xk
[J X ]⋅X 0−S≈F X
Lo cual nos conduce al siguiente esquema iterativo:
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 43
Ventajas del Método de Newton
Se trata de un método robusto.
Posee convergencia cuadrática.
Necesita de un valor inicial cercano a la solución.
Realiza una elevada cantidad de evaluaciones de funciones.
Si la cantidad de variables es elevada, se dificulta la obtención de un valor inicial.
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 44
Método de Newton (Sistemas)
SUBROUTINE newton_sist(V_inic, cant_ec, tol, max_iter, formato)INTEGER iter, max_iter, pivote(cant_ec), info, cant_ecREAL(8) V_inic(cant_ec), V(cant_ec), DV(cant_ec), J(cant_ec, cant_ec)REAL(8) tol, errorCHARACTER*15 formato
iter=0
error=2*tol
V=V_inic
WRITE (*, formato) iter, V
Sique en la próxima página
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 45
Método de Newton (Sistemas)
DO WHILE ((error > tol) .AND. (iter < max_iter))
J = m_jacob(V, cant_ec) ! Calcula la matriz Jacobiana
DV = v_func(V, cant_ec) ! Evalúa las funciones en el punto actual
! Calcula el nuevo incremento DV CALL DGESV(cant_ec, 1, J, cant_ec, pivote, DV, cant_ec, info)
V = V - DV ! Calcula los nuevos valores error = normaM_v(DV) ! Calcula el error iter = iter+1 WRITE (*, formato) iter, VENDDO END SUBROUTINE
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 46
Método de Newton Modificado
Si el sistema a resolver es muy grande, se suelen hacer ciertas aproximaciones. Así surgen variantes conocidas como métodos de Newton Modificado ó Cuasi-Newton.
(s−x0)=f 1(X0)
∂ f 1(X 0)
∂ x
(t− y0)=f 2(X0)
∂ f 2(X 0)
∂ y⋯⋯⋯⋯⋯⋯⋯⋯⋯
(r−z0)=f n(X0)
∂ f n(X 0)
∂ z
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 47
Método de Newton Modificado
SUBROUTINE newton_mod_sist(V_inic, cant_ec, tol, max_iter, formato)INTEGER iter, max_iter, cant_ecREAL(8) V_inic(cant_ec), V(cant_ec), DV(cant_ec), tol, errorCHARACTER*15 formato
iter=0
error=2*tol
V=V_inic
WRITE (*, formato) iter, V
Sique en la próxima página
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 48
Método de Newton Modificado
DO WHILE ((error > tol) .AND. (iter < max_iter))
! Calcula los incrementos DV = v_func(V, cant_ec)/v_deriv(V, cant_ec) ! Calcula los nuevos valores V = V - DV
! Calcula el error error = normaM_v(DV)
iter = iter+1 WRITE (*, formato) iter, V ENDDO
END SUBROUTINE
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 49
Método de Newton Modificado
Realiza menor cantidad de operaciones.
No necesita resolver un sistema de ecuaciones lineales en cada iteración.
Obtiene los incrementos de las variables por medio de simples cocientes.
Converge más lentamente que Newton.
Necesita de un punto de partida muy cercano a la solución.
Mg. Ing. Francisco A. Lizarralde Facultad de Ingeniería - UNMDP - 2017 50
PREGUNTAS ...