Está en la página 1de 12

Tema 4

Ecuaciones y Sistemas de Ecuaciones


Algebraicas

4.6. Ceros de polinomios


4.6.1. Evaluación
Se trata de saber cuánto vale un determinado polinomio cuando damos valor a la variable. Por
ejemplo, ¿cuánto vale el polinomio P (x) = 5x3 + 2x2 − 12x + 34 cuando x vale 7?
La respuesta parece evidente: basta sustituir la variable x por 7 y hacer el cómputo de la operación
5·73 +2·72 −12·7+34. Efectivamente es cierto. Sin embargo, al proceder así se hacen más multiplicaciones
de las necesarias porque la expresión 5·73 +2·72 −12·7+34, se expande como, 5·7·7·7+2·7·7−12·7+34.
Lo que exige un total de 6 multiplicaciones y 3 sumas (o restas) para alcanzar el resultado.
Por este motivo se propone que el polinomio genérico:
P (x) = an xn + an−1 xn−1 + . . . + a1 x + a0 (4.1)
se evalúe anidando la variable de la siguiente manera:
P (x) = ((((an x + an−1 ) x + an−2 ) x + an−3 ) x . . . + a1 ) x + a0 (4.2)
En el caso del ejemplo,
P (x) = 5x3 + 2x2 − 12x + 34 = ((5x + 2) x − 12) x + 34 (4.3)
Entonces, cuando x = 7
P (7) = 5 · 73 + 2 · 72 − 12 · 7 + 34 = ((5 · 7 + 2) · 7 − 12) · 7 + 34 (4.4)
que implica efectuar 3 multiplicaciones y 3 sumas (o restas).
Además del ahorro de operaciones (téngase en cuenta que en ocasiones es preciso hacer la evaluación
de un polinomio millones de veces1 ) esta manera de evaluarlo también es menos propensa a acumular
errores de redondeo.

4.6.2. Método de Honer


El método de Honer aplica el algoritmo de Newton-Raphson a un polinomio de tal manera que se
automatice el procedimiento y se minimice el número de operaciones.
Como se recordará, un polinomio tiene tantas raíces como el grado del polinomio. Si se quieren obtener
todas ellas, cada vez que se encuentra una, hay que dividir el polinomio entre el binomio solución y
continuar buscando. Este proceso es similar al que permite descomponer un polinomio como producto
de binomios por la método de Rufini.
Por ejemplo, si se pide calcular las raíces del polinomio,
P (x) = x3 − 3x2 − 4x + 12 (4.5)
se probaría soluciones que sean divisores del término de orden 0; esto es, divisores de 12. Entonces, si se
prueba la solución x = 2,
1 Baste pensar en la función que se elaboró para buscar la raíz de una ecuación algebraica probando soluciones aleatorias.

1
TEMA 4. ECUACIONES Y SISTEMAS DE ECUACIONES ALGEBRAICAS

1 −3 −4 12
2 ↓ 2 −2 12
1 −1 −6 0
El resto es cero, por tanto x = 2 es raíz. Además, este método proporciona el polinomio cociente:

x3 − 3x2 − 4x + 12
= x2 − x − 6 (4.6)
x−2
Por eso,
x3 − 3x2 − 4x + 12 = x2 − x − 6 (x − 2)

(4.7)
Para obtener la siguiente raíz, habría que probar con divisores de 6. Si se prueba de nuevo x = 2,
1 −1 −6
2 ↓ 2 2
1 1 −4
La división no conduce a resto cero y por tanto esta no sería una raíz del último polinomio. Sin embargo,
si se prueba x = −2, entonces,
1 −1 −6
−2 ↓ −2 6
1 −3 0
se obtiene una división con resto cero.
Finalmente, el polinomio se ha descompuesto como producto de binomios:

x3 − 3x2 − 4x + 12 = (x − 3) (x + 2) (x − 2) (4.8)

y las raíces son x = 3, x = −2 y x = 2


Cuando las raíces no son enteras (o incluso no son reales), el método de Rufini no es eficiente porque
no se sabe qué valores hay que probar. Pero, si se considera que un polinomio es una ecuación no lineal,
se le puede aplicar cualquier método de los que se han estudiado.
En definitiva, lo que se pretende es

tomar un polinomio y aplicar un método de resolución de ecuaciones no lineales hasta obtener una
raíz,

dividir el polinomio entre el binomio solución,

si el grado del polinomio cociente es mayor que dos, volver al primer punto y aplicar de nuevo el
método. Si el grado es dos o menos, se pueden resolver las últimas raíces por las fórmulas de la
ecuación de segundo grado o de la ecuación lineal.

Supóngase que el método que se va a emplear es el de Newton-Raphson. Entonces, para encontrar


cada una de las raíces, habrá que aplicar la iteración:

P (xi )
xi+1 = xi − (4.9)
P ′ (xi )

Pues bien, la manera de evaluar el polinomio que propone Honer permite calcular simultáneamente
el valor de P (xi ) y P ′ (xi ). Además, cuando se alcanza la convergencia y se encuentra la raíz, también es
posible conocer los coeficientes del polinomio cociente para seguir con la iteración hasta encontrar todas
las raíces.
En los apuntes se dice que para evaluar P (x) se emplee una manera alternativa a las que se han
mostrado más arriba en las expresiones (4.1) y (4.2).
En concreto se dice que,

P (x) = an xn + an−1 xn−1 + . . . + a1 x + a0 = (x − x0 )Q(x) + b0 (4.10)

donde Q(x) es un polinomio de grado n − 1,

Q(x) = bn xn−1 + bn−1 xn−2 + . . . + b2 x + b1 (4.11)

Escuela Politécnica de Ingeniería de Ferrol 2


TEMA 4. ECUACIONES Y SISTEMAS DE ECUACIONES ALGEBRAICAS

y los coeficientes bi son,


bn = an
bn−1 = bn x0 + an−1
bn−2 = bn−1 x0 + an−2
..
. (4.12)
bk = bk−1 x0 + ak
..
.
b0 = b1 x0 + a0
con x0 un valor cualquiera conocido. El valor de estos coeficientes coincide con el calculo parcial del valor
del polinomio cuando se emplea la técnica descrita en la expresión (4.2),

P (x0 ) = ((((an x0 + an−1 ) x0 + an−2 ) x0 + an−3 )x0 . . . + a1 ) x0 + a0 (4.13)


bn
bn−1

bn−2

b1
b0

por tanto estos coeficientes se pueden calcular recursivamente: a partir de bn se calcula bn−1 y luego
bn−2 , etc.
En los apuntes se comprueba que, para cualquier x, el valor del polinomio calculado mediante la
expresión (4.1) o (4.2) coincide con el que se obtiene aplicando la expresión (4.10). En particular, para
un x = x0 resulta que,
P (x0 ) = b0
′ (4.14)
P (x0 ) = Q(x0 )
Además, supuesto que se ha llegado a la convergencia y x = x0 es raíz del polinomio,

P (x)
= Q(x) (4.15)
x − x0

Y entonces Q(x) sería el polinomio cociente con el que habría que trabajar para seguir buscando las
raíces.
Por eso, la aplicación del algoritmo de Newton-Raphson al polinomio quedaría:

1. Partir de un x0 cualquiera (preferiblemente próximo a una raíz) y aplicar la iteración de la expresión


(4.9). Para evaluar el valor de P (xi ) y P ′ (xi ) en cada iteración hay que tener en cuenta la expresión
(4.14),

2. Una vez que se alcance la convergencia, se efectúa la división del polinomio entre el binomio solución
(expresión (4.15)),

3. Se itera de nuevo con el polinomio cociente conforme lo establecido en el punto 1 siempre y cuando
sea de grado superior a 2.

4. Cuando el polinomio cociente resultante de la deflación de la expresión (4.15) sea de grado 2 se


resuelven sus raíces mediante la fórmula de la ecuación de segundo grado.

4.7. Sistemas de ecuaciones algebraicas


4.7.1. Preámbulo
Para aclarar las explicaciones, a lo largo de esta sección se va a trabajar con uno de los ejercicios que
están entre el material de Moodle de este tema.
Para mayor comodidad se transcribe el enunciado del problema a continuación:

Escuela Politécnica de Ingeniería de Ferrol 3


TEMA 4. ECUACIONES Y SISTEMAS DE ECUACIONES ALGEBRAICAS

Caracterización portante de un terrenoa : La presión que se requiere para hundir un objeto


largo y pesado en un suelo homogéneo y poco consistente que descansa sobre un fundamento firme,
se puede predecir si se conoce la presión necesaria para hundir en el mismo terreno objetos más
pequeños y menos pesados.
En concreto, la presión p necesaria para hundir hasta una profundidad d una pletina circular de
radio r, se puede aproximar, con la condición de que el suelo firme esté a una distancia D > d,
mediante la siguiente ecuación
p = k1 ek2 r + k3 r (4.16)
donde k1 , k2 y k3 son constantes (con k2 > 0) que dependen de d y de la consistencia del terreno
pero no del radio de la pletina [2, p. 846].
Para caracterizar un terreno fangoso con más de un pie de profundidad, se efectúan tres experi-
mentos y se constata que:
1. Una pletina de radio 1 pulgada requiere una presión de 10 lb/in2 para ser introducida 1 pie
en ese terreno,
2. una pletina circular de 2 pulgadas de radio requiere 12 lb/in2 para ser hundida 1 pie en el
mismo terreno y,
3. la presión requerida para enterrar hasta una profundidad de 1 pie una pletina circular de 3
pulgadas de radio es de 15 lb/in2 .
Se pide:

a) Encontrar los valores de k1 , k2 y k3 que caracterizan el terreno y


b) Emplear los valores obtenidos en el apartado anterior para calcular el radio mínimo de la
pletina circular que sería necesaria para soportar una carga de 500 lb sin hundirse más de
un pie en el terreno blando que se ha caracterizado.
a El problema está tomado de [1, p. 600]

4.7.2. Introducción
Tal como se dice en los apuntes, se trata de resolver un sistema de ecuaciones de la forma,

f1 (x1 , x2 , . . . , xn ) = 0



 f2 (x1 , x2 , . . . , xn ) = 0


.. (4.17)



 .

fn (x1 , x2 , . . . , xn ) = 0

donde f1 , f2 , . . . , fn son funciones no lineales de las variables x1 , x2 , . . . , xn .


En el caso práctico del modelo matemático para la caracterización del terreno, la ecuación de la
expresión (4.16) se particulariza para los tres resultados del experimento de la siguiente manera:
 k2
10 = k1 e + k3 (cuando r = 1)

12 = k1 e2k2 + 2k3 (cuando r = 2) (4.18)

 3k2
15 = k1 e + 3k3 (cuando r = 3)

Este sistema puede reescribirse para adaptarlo a la forma general que expresa la ecuación (4.17),
 k2
 k1 e + k3 − 10 = 0

k1 e2k2 + 2k3 − 12 = 0 (4.19)

 3k2
k1 e + 3k3 − 15 = 0

Esta última expresión describe tres relaciones que ligan las tres variables (o incógnitas) k1 , k2 y k3 .
Lógicamente las técnicas para resolver sistemas de ecuaciones lineales no sirven en este caso porque las
relaciones entre las incógnitas no son lineales. De ahí que hagan falta técnicas específicas.

Escuela Politécnica de Ingeniería de Ferrol 4


TEMA 4. ECUACIONES Y SISTEMAS DE ECUACIONES ALGEBRAICAS

4.7.3. Método de la Iteración de Punto Fijo


El planteamiento es análogo al que se ha desarrollado para las ecuaciones algebraicas. Dado un sistema
similar al expresado en la ecuación (4.17), hay que transformarlo de manera que cada ecuación responda
a una expresión explícita de una variable (despejar una incógnita en cada ecuación):

f1 (x1 , x2 , . . . , xn ) = 0 x1 = g1 (x1 , x2 , . . . , xn ) 
 
 
f2 (x1 , x2 , . . . , xn ) = 0 x2 = g2 (x1 , x2 , . . . , xn ) 
 
 
.. → . (4.20)
. 
 .. 


 

 
fn (x1 , x2 , . . . , xn ) = 0 xn = gn (x1 , x2 , . . . , xn )

Una vez transformado se establece la iteración:


xi+1 = g1 xi1 , xi2 , . . . , xin

1
xi+1 = g2 xi1 , xi2 , . . . , xin

2
.. (4.21)
.
xi+1 = gn xi1 , xi2 , . . . , xin

n

Hay que aclarar que no es preciso despejar x1 de la primera ecuación, x2 de la segunda, etc. Se puede
escoger cualquier combinación de incógnitas y ecuaciones con tal de que cada ecuación se emplee una
sola vez y todas las incógnitas se expresen explícitamente.
Referido de nuevo este planteamiento general al problema de la caracterización de pesos, la iteración
se podría plantear así:

10 − k3i
k1i+1 = i
ek2
ln (12 − 2k3i ) − ln k1i
k2i+1 = (4.22)
2
i 3k2i
15 − k1 e
k3i+1 =
3
Donde se ha tomado la primera ecuación de la expresión (4.19) para despejar k1 , la segunda para obtener
una expresión de k2 y la tercera para k3 .
Es importante tener en cuenta que en este caso particular, cada una de las expresiones de las k ′ s ha
resultado dependiente de las otras k ′ s y no de la que se está despejando (la expresión de k1 no depende
de k1 , la de k2 no depende de k2 , ...). En un caso general, cada una de las incógnitas dependería de sí
misma, además de depender de las otras.
Además, hay que hacer notar que la expresión (4.22) es una de las maneras de poner las incógnitas en
función de ellas mismas, pero no la única. Cuando se trató la resolución de las ecuaciones no lineales por
el método de la Iteración de punto fijo o punto simple ya se puso de manifiesto esta circunstancia. En
el caso de los sistemas de ecuaciones el número de variaciones posibles es mayor y el comportamiento de
cada una de ellas puede ser distinto (convergencia o no). Se anima al estudiante a buscar otras maneras
de despejar las incógnitas en este problema e incluso a calcular el número total de formas posibles.
El algoritmo sería:
1. Partir de un x0 = {x0 , x1 , . . . , xn } cualquiera (preferiblemente próximo a la solución) y encontrar
una nueva solución aplicando la fórmula iterativa de la expresión (4.21),
2. Comprobar la variación relativa entre la nueva solución y la anterior (error relativo aproximado),
3. Si el error relativo aproximado es mayor que el establecido (no ha convergido a la solución), conti-
nuar iterando (obtener una nueva solución a partir de la última). Cuando el error esté por debajo
del admisible se ha alcanzado la solución.
Para calcular el error relativo aproximado hay que comparar dos soluciones consecutivas. Teniendo
en cuenta que las soluciones que se van obteniendo en cada iteración están constituidas por varios valores
(un vector), puede no resultar claro cómo efectuar la comparación entre ellas. Este asunto se discutió en
clase al hablar de los métodos iterativos para la solución de sistemas de ecuaciones lineales. Entonces se
dijo que hay que evaluar cómo de grande es el vector diferencia entre las dos soluciones. Para hacerlo, se

Escuela Politécnica de Ingeniería de Ferrol 5


TEMA 4. ECUACIONES Y SISTEMAS DE ECUACIONES ALGEBRAICAS

puede tomar la mayor las componentes en valor absoluto de ese vector diferencia. Alternativamente, se
pueden sumar los valores absolutos de todas las componentes del vector deferencia o, también, calcular
la raíz cuadrada de la suma de los cuadrados de las componentes. Estos tres criterios corresponden
respectivamente a evaluar la norma natural infinito, la norma natural 1 y la norma natural 2 (módulo)
del vector diferencia.
Entonces el criterio de parada se puede expresar matemáticamente de la siguiente manera:
∥xi+1 − xi ∥
< tol (4.23)
∥xi+1 ∥
donde la doble barra vertical que encierra los vectores significa norma. Tal como se ha dicho es equivalente
usar la norma 1, la norma 2 o la infinito, aunque seguramente preferiremos la 2, que coincide con el módulo
del vector.
No hay que olvidarse de incluir un máximo de iteraciones para evitar una iteración infinita si el
proceso no convergiese.
No resulta difícil realizar un programa en Matlab que lleve a cabo esta iteración. Se incluye a con-
tinuación una propuesta, pero se recomienda que cada uno lo intente por su cuenta antes de mirar el
código.
function [x,ite,err] = pfijoSmas(sistema,x0,erradm,maxite)

% [x,ite,err] = pfijoSmas(sistema,x0,erradm,maxite)
% Resuelve un sistema de ecuaciones algebraicas mediante la iteración de punto fijo.
% Se parte de la solución inicial x0. Las expresiones de cada incógnita en función
% de las actuales están definidas en el fichero "sistema".

if nargin < 1, error('Es necesario proporcionar un fichero de definición del sistema'); end
if nargin < 2, error('Es necesario proporcionar una solución inicial'); end
if nargin < 3, erradm=1.0e-8; end
if nargin < 4, maxite=100; end

% La nueva solución tiene que tener las mismas dimensiones que la inicial para que se puedan restar
% los vectores al calcular el error.
x=zeros(size(x0));

err=2*erradm; ite=0; % Para que se cumplan las condiciones de entrada en el while


while err > erradm && ite < maxite
% cálculo del nuevo vector de incógnitas
x=feval(sistema,x0);
% evaluación del error relativo aproximado
err=norm(x-x0)/norm(x);
x0=x; % la solución más reciente es la anterior de la siguiente iteración
ite=ite+1;
end

% Al final de la iteración se comprueba si ha terminado porque se satisface el criterio de convergencia


% o porque se ha superado el número de iteraciones admisible.
if err > erradm, error ('La iteración no ha convergido'); end

end

El sistema de ecuaciones (4.22) se traslada a un fichero .m de Matlab de la siguiente manera:


function k_nueva = kasPfijo(k)
% k_nueva = kasPfijo(k)
% Calcula los valores de cada k en función de los anteriores

k_nueva=zeros(size(k)); % para que el nuevo vector tenga las mismas dimensiones que el de entrada

k_nueva(1)=(10-k(3))/exp(k(2));
k_nueva(2)=(log(12-2*k(3))-log(k(1)))/2;
k_nueva(3)=(15-k(1)*exp(3*k(2)))/3;

end

Se puede comprobar, ejecutando


>> pfijoSmas('kasPfijo',[8.7 -0.2 1.3]')

Escuela Politécnica de Ingeniería de Ferrol 6


TEMA 4. ECUACIONES Y SISTEMAS DE ECUACIONES ALGEBRAICAS

que la iteración de punto fijo no converge aunque se parta de valores muy próximos a la solución. Las
únicas modificaciones que caben en el algoritmo tienen que ver con la forma de despejar las variables: se
podría usar la primera ecuación para despejar k2 ó k3 , la segunda para despejar k1 ó k3 , etc. ¿Converge
de esta manera?.

4.7.4. Iteración de Seidel


Tal como dicen los apuntes, básicamente es el mismo algoritmo de la iteración de punto fijo en el que
se introduce una pequeña alteración: cada nuevo valor calculado, se emplea para calcular los siguientes.
Por eso, la expresión (4.21) se reescribe para reflejar que, una vez calculado el valor de xi+1 1 , se emplea
para calcular el de xi+1
2 y ambos para calcular el de xi+1 3 y así sucesivamente. La expresión general de la
iteración es:
xi+1 = g1 xi1 , xi2 , xi3 , . . . , xin−1 , xin

1
xi+1 = g2 xi+1 i i i i

2 1 , x2 , x3 , . . . , xn−1 , xn
xi+1 = g2 xi+1 i+1 i i i

3 1 , x2 , x3 , . . . , xn−1 , xn (4.24)
..
.
xn = gn xi+1
i+1 i+1 i+1 i+1 i

1 , x2 , x3 , . . . , xn−1 , xn

De esta manera, no es necesario un nuevo programa para la iteración de Seidel. Basta con que el fichero
en que se codifica el sistema refleje que las incógnitas ya calculadas se emplean en las expresiones de las
siguientes. En concreto, en el caso del problema de la caracterización del terreno, si se despeja k1 de la
primera ecuación, k2 de la segunda y k3 de la tercera, tal como se había hecho anteriormente (ecuación
(4.22)), la iteración de Seidel se particularizaría expresando las incógnitas de la siguiente manera:

10 − k3i
k1i+1 = i
ek 2
ln (12 − 2k3i ) − ln k1i+1
k2i+1 = (4.25)
2
i+1
15 − k1i+1 e3k2
k3i+1 =
3
Esta expresión se puede trasladar a un fichero .m de Matlab que difiere poco del que se ha presentado
antes:

function k = kasSeidel(k)
%k = kasSeidel(k)
% Calcula los valores de cada k en función de los ellos mismos

k(1)=(10-k(3))/exp(k(2));
k(2)=(log(12-2*k(3))-log(k(1)))/2;
k(3)=(15-k(1)*exp(3*k(2)))/3;

end

En este caso, al ejecutar


>> pfijoSmas('kasSeidel',[8.7 -0.2 1.3]')

produce el resultado
ans =

9.7287
-0.5474
4.3723

que es solución del sistema, aunque no cumple las condiciones del enunciado del problema porque se decía
que el valor de k2 tenía que ser positivo. Se recomienda probar a resolver el problema con diferentes puntos
para el inicio de la iteración. En algunos casos se comprobará que no converge y, en los que converge,
probablemente el valor de k2 seguirá sin cumplir las condiciones del modelo matemático que caracteriza
el terreno.

Escuela Politécnica de Ingeniería de Ferrol 7


TEMA 4. ECUACIONES Y SISTEMAS DE ECUACIONES ALGEBRAICAS

4.7.5. Método de Newton


La deducción de la expresión iterativa del método de Newton es análoga a la que se hizo para el
método de Newton-Raphson que se emplea para la solución de las ecuaciones no lineales.
El punto de partida es la expresión general del sistema de ecuaciones no lineales de la ecuación (4.17).
Cada ecuación se cumple estrictamente si los valores de las variables son los de la solución. Por tanto, si
se representa cada componente del vector solución como xsi ,

f1 (xs1 , xs2 , . . . , xsn ) = 0





 f2 (xs1 , xs2 , . . . , xsn ) = 0


.. (4.26)



 .
fn (xs1 , xs2 , . . . , xsn ) = 0

El valor de las funciones f1 , f2 , . . . , fn en xs = {xs1 , xs2 , . . . , xsn } se puede escribir a partir del valor en
cualquier otro punto xi = {xi1 , xi2 , . . . , xin } mediante un desarrollo en serie:
∂f1 s ∂f1 s ∂f1 s


 f1 (xs1 , xs2 , . . . , xsn ) = f1 (xi1 , xi2 , . . . , xin ) + (x1 − xi1 ) + (x2 − xi2 ) + . . . + (xn − xin ) + . . .
∂x ∂x ∂x

1 2 n



∂f ∂f ∂f2 s

 f2 (xs1 , xs2 , . . . , xsn ) = f2 (xi1 , xi2 , . . . , xin ) + 2 (xs1 − xi1 ) + 2 (xs2 − xi2 ) + . . . +

(x − xin ) + . . .


∂x1 ∂x2 ∂xn n

 ..


 .

f (xs , xs , . . . , xs ) = f (xi , xi , . . . , xi ) + ∂fn (xs − xi ) + ∂fn (xs − xi ) + . . . + ∂fn (xs − xi ) + . . .



n 1 n n 1 n
2 2
∂x1 1 1
∂x2 2 2
∂xn n n

(4.27)
Recuérdese que este desarrollo supone la suma de infinitos términos y que la expresión anterior solo
representa explícitamente los de orden cero y uno. Suponiendo que estos sean los más significativos y
que puedan despreciarse los de orden 2 y superiores, la expresión se transformaría en:
∂f1 s ∂f1 s ∂f1 s


 f1 (xs1 , xs2 , . . . , xsn ) ≈ f1 (xi1 , xi2 , . . . , xin ) + (x1 − xi1 ) + (x2 − xi2 ) + . . . + (xn − xin )
∂x ∂x ∂x

1 2 n



∂f ∂f ∂f2 s

 f2 (xs1 , xs2 , . . . , xsn ) ≈ f2 (xi1 , xi2 , . . . , xin ) + 2 (xs1 − xi1 ) + 2 (xs2 − xi2 ) + . . . +

(x − xin )


∂x1 ∂x2 ∂xn n (4.28)


 .
..



∂f ∂f ∂f


fn (xs1 , xs2 , . . . , xsn ) ≈ fn (xi1 , xi2 , . . . , xin ) + n (xs1 − xi1 ) + n (xs2 − xi2 ) + . . . + n (xsn − xin )


∂x1 ∂x2 ∂xn
Si se tiene en cuenta, a su vez, que el valor de las funciones en la solución es cero, tal como dice la
ecuación (4.26), entonces:
∂f1 s ∂f1 s ∂f1 s


 0 ≈ f1 (xi1 , xi2 , . . . , xin ) + (x1 − xi1 ) + (x2 − xi2 ) + . . . + (xn − xin )
∂x ∂x ∂x

1 2 n



∂f ∂f ∂f1 s

0 ≈ f2 (xi1 , xi2 , . . . , xin ) + 2 (xs1 − xi1 ) + 2 (xs2 − xi2 ) + . . . +

(x − xin )


∂x1 ∂x2 ∂xn n (4.29)
 ...





∂f ∂f ∂f


0 ≈ fn (xi1 , xi2 , . . . , xin ) + n (xs1 − xi1 ) + n (xs2 − xi2 ) + . . . + n (xsn − xin )


∂x1 ∂x2 ∂xn
y, escrito en forma matricial:
 ∂f1 ∂f1 ∂f1

i i i ...  (xs1 − xi1 )
    
 0    f1 (xi1 , xi2 , . . . , xin )  ∂x1
∂f2
∂x2
∂f2
∂xn
∂f1

  (xs2 − xi2 )
   
 0 
    f2 (x1 , x2 , . . . , xn ) 
 
...
 

 ∂x1 ∂x2 ∂xn
.. ≈ .. + .. .. .. ..  .. (4.30)
.  . .
 


 






  . . . . 



fn (xi1 , xi2 , . . . , xin )
 s
0 ∂fn ∂fn ∂fn (xn − xin )
    
∂x1 ∂x2 ... ∂xn

Si se llama Fi al valor de las funciones evaluadas en xi , Ji al valor de las derivadas parciales de las
funciones respecto a las variables (la matriz jacobiana) evaluadas en xi y ∆xis a las diferencias entre los

Escuela Politécnica de Ingeniería de Ferrol 8


TEMA 4. ECUACIONES Y SISTEMAS DE ECUACIONES ALGEBRAICAS

valores solución y los representados por xi (∆xis = xs − xi ), la expresión anterior (4.30) se reescribe de
forma más compacta,
0 ≈ Fi + Ji ∆xis (4.31)
Esta última ecuación permitiría calcular ∆xis :

∆xis ≈ −(Ji )−1 Fi (4.32)

y de aquí, el valor de la solución:


xs ≈ xi + ∆xis (4.33)
En este momento se puede hacer un razonamiento análogo al que se expuso cuando se explicó el
algoritmo de Newton-Raphson: el valor de la solución obtenido en las expresiones (4.32) y (4.33) no será
exacto pero se puede razonar que estará más cerca de la solución del problema que el valor de partida xi .
Por eso, en vez de suponer que se obtiene directamente la solución final a partir de la solución aproximada
xi , se concluye que se obtiene una solución xi+1 más próxima a la solución final.
En definitiva, la ecuación (4.32) se reescribe,

∆xi = −(Ji )−1 Fi (4.34)

donde,
∆xi = xi+1 − xi (4.35)
Hay que tener en cuenta, tal como se ha dicho en clase, que si es posible, hay que evitar el cálculo de
matrices inversas. Por este motivo, la iteración de la expresión (4.34) se plantea en forma de sistema de
ecuaciones lineales donde el vector de incógnitas es ∆xi :

Ji ∆xi = −Fi (4.36)

Calculado el valor de las incógnitas, ∆xi se puede despejar el valor del nuevo vector solución en la
iteración i + 1.
xi+1 = xi + ∆xi (4.37)
El algoritmo sería:

1. Dado un sistema de ecuaciones, preparar un fichero para calcular las imágenes de las funciones
para un determinado valor de las incógnitas y otro fichero para calcular el valor de las derivadas
parciales de cada función respecto a cada variable.

2. Partir de un x0 = {x0 , x1 , . . . , xn } cualquiera (preferiblemente próximo a la solución) y encontrar


una nueva solución aplicando la fórmula iterativa de la expresión (4.36),

3. Comprobar la variación relativa entre la nueva solución y la anterior (error relativo aproximado),

4. Si el error relativo aproximado es mayor que el establecido (no ha convergido a la solución), conti-
nuar iterando (obtener una nueva solución a partir de la última). Cuando el error esté por debajo
del admisible se ha alcanzado la solución.

Para aclarar lo dicho, se va a aplicar el algoritmo al problema de la caracterización del terreno. Si se


siguen los pasos anteriores, hay que preparar dos ficheros: uno para calcular las funciones y otro para las
derivadas.
El de la función se puede llamar presiones.m y recoge las expresiones de las funciones tal como se
escriben en la ecuación (4.19):

function F = presiones(k)

% F = presiones(k)
% Evaluación del vector de funciones como F(k)=0 en la caracterización del terreno.

F = [k(1)*exp(k(2))+k(3)-10;
k(1)*exp(2*k(2))+2*k(3)-12;
k(1)*exp(3*k(2))+3*k(3)-15];

end

Escuela Politécnica de Ingeniería de Ferrol 9


TEMA 4. ECUACIONES Y SISTEMAS DE ECUACIONES ALGEBRAICAS

Para calcular el Jacobiano hay que derivar cada ecuación respecto a las variables:
 ∂f ∂f1 ∂f1
 
1
ek 2 k1 ek2

∂k1 ∂k2 ∂k3 1
 ∂f2 ∂f2 ∂f2   2k2
J =  ∂k1 ∂k2 ∂k3  = e 2k1 e2k2 2  (4.38)
3k2
∂f3 ∂f3 ∂f3 e 3k1 e3k2 3
∂k1 ∂k2 ∂k3

Estas expresiones trasladadas a un fichero de Matlab que se puede llamar jacobiano.m serían:
function J = jacobiano(k)

% J = jacobiano(k)
% Calcula el jacobiano del sistema de ecuaciones que caracterizan la cohesión de un terreno

J = [exp(k(2)) k(1)*exp(k(2)) 1;
exp(2*k(2)) 2*k(1)*exp(2*k(2)) 2;
exp(3*k(2)) 3*k(1)*exp(3*k(2)) 3];

end

Ahora hay que programar el algoritmo de Newton. Se puede hacer partiendo del otro programa para
resolver sistemas de ecuaciones no lineales. Se recomienda intentarlo antes de mirar el código.
function [x,ite,err] = newton(ecuaciones,jacobiano,x,erradm,maxite)

% [x,ite,err] = newton(ecuaciones,jacobiano,x0,erradm,maxite)
% A partir de un valor inicial estimado del vector x calcula los valores
% de la solución de un sistema de ecuaciones no lineales por el método de
% Newton. Hace falta proporcionar una función que calcule los valores de
% las funciones y otra que calcule el valor del jacobiano.

if nargin < 5, maxite=50; end


if nargin < 4, erradm=1.0e-8; end
if nargin < 3, error('Hace falta un valor inicial de la solución'); end
if nargin < 2, error('Falta el jacobiano'); end
if nargin < 1, error('Falta la evalución de las funciones'); end

err=2*erradm; ite=0; % para que entre en el while


while err > erradm && ite < maxite
% cálculo de la nueva solución
deltax=feval(jacobiano,x)\(-feval(ecuaciones,x));
x=x+deltax;
% evaluación del error relativo aproximado
err=norm(deltax)/norm(x); % la diferencia de los vectores está en deltax
ite=ite+1;
end

if err > erradm, error ('La iteración no ha convergido'); end

end

En este caso, la instrucción


>> kas=newton('presiones','jacobiano',[1.0 2.0 3.0]')

devuelve los valores:


kas =

8.7713
0.2597
-1.3723

Se puede comprobar que estos valores cumplen las ecuaciones y además se verifica la condición k2 > 0.

4.7.6. Conclusión
De lo expuesto se puede concluir que la convergencia de los métodos de la iteración de punto fijo y de
Seidel es endeble, incluso si se conoce un punto próximo a la solución. Podéis comprobarlo experimentando
con los programas y con otros ejercicios (entre otros con la práctica propuesta).

Escuela Politécnica de Ingeniería de Ferrol 10


TEMA 4. ECUACIONES Y SISTEMAS DE ECUACIONES ALGEBRAICAS

El método de Newton es muy efectivo. Se puede experimentar con el modelo de la caracterización


del terreno y con otros problemas probando distintos puntos de partida y evaluando si se alcanza o no
la solución y anotando el número de iteraciones necesarias. Sin embargo, computacionalmente es caro
porque exige la evaluación de las funciones y de la matriz jacobiana y porque cada iteración requiere la
solución de un sistema de ecuaciones lineales.
Hay otros muchos procedimientos para la solución de sistemas de ecuaciones no lineales pero con lo
que se han visto en el capítulo es suficiente para hacerse una idea de cómo funcionan estas técnicas.
Por último, el problema de la caracterización del terreno tenía dos partes. Hemos resuelto la primera;
la de calcular los valores de k. Con estos valores hay que plantear una ecuación no lineal para calcular el
radio de la pletina que aguanta un peso de 500 lb sin hundirse. Lo dejo para vosotros, para que apliquéis
lo que hemos estudiado sobre ecuaciones algebraicas.

Escuela Politécnica de Ingeniería de Ferrol 11


Bibliografía

1. BURDEN, Richard L. y FAIRES, J. Douglas. Análisis Numérico. 7.a ed. México: Thomson Learning,
2002. isbn 9706861343.
2. BEKKER, Mieczyslaw G. Introduction to Terrain Vehicle Systems. Ann Arbor, Michigan: University
of Michigan Press, 1969. isbn 0472041444.

12

También podría gustarte