Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
ECUACIONES ALGEBRAICAS - 1
y x=y
y2 g(x)
solución
y1
x1 x2 x
0.36
x=( 52+3 √ x – 8 x 0.8 ) =g ( x )
Se programa la función:
function r=gx(x) r=(52+3*sqrt(x)-8*x^0.8)^0.36; end
Entonces se asume un valor inicial para “x” (en este ejemplo asumiremos
un valor inicial igual a 1.1) y con el mismo se calcula el valor de la fun-
ción:
>> gx(1.1)
ans = 3.984055387788424
Como el valor asumido “1.1” no es igual al calculado “3.984...”, se repi-
te el proceso, pero empleando ahora como valor asumido el valor calculado
(el mismo que en Jasymca se encuentra en la variable “ans”):
>> gx(ans)
ans = 3.5520121320219027
Una vez más el valor asumido “3.984...” es diferente al calculado
“3.552..”, por lo que el proceso se repite hasta que el valor asumido y
calculado son iguales:
>> gx(ans)
ans = 3.6184795992473147
>> gx(ans)
ans = 3.608323565491999
>> gx(ans)
ans = 3.609876925738287
>> gx(ans)
ans = 3.609639376571533
>> gx(ans)
ans = 3.609675704867658
>> gx(ans)
ans = 3.609670149216255
>> gx(ans)
ans = 3.60967099883715
>> gx(ans)
ans = 3.6096708689053827
>> gx(ans)
ans = 3.609670888775732
>> gx(ans)
ans = 3.6096708857369775
>> gx(ans)
ans = 3.6096708862016915
>> gx(ans)
ans = 3.6096708861306235
>> gx(ans)
ans = 3.609670886141492
>> gx(ans)
ans = 3.6096708861398294
>> gx(ans)
ans = 3.609670886140083
>> gx(ans)
ans = 3.6096708861400444
>> gx(ans)
ans = 3.60967088614005
>> gx(ans)
ans = 3.60967088614005
ECUACIONES ALGEBRAICAS - 1 - 3 -
∣ ∣
x1
x2
−1 <1×10−n (2.3)
Donde “x1” y “x2” son los dos últimos valores calculados. Si esta expre-
sión es verdadera, el resultado tiene “n” dígitos de precisión.
La exactitud se determina con la expresión booleana:
∣ f ∣<1×10−n (2.4)
x 2 = g(x1)
[else] [c = li]
devolver x2
c = c+1
mostrar x2 límite de
iteraciones
x1 = x2 alcanzado.
generar error
1.1.2. Ejemplos
(
x=acos −( 1+ x
2 −1
) )=g ( x)
En estos ejemplos se asumirá que no se puede ejecutar la instrucción
“hold on”, por lo que se programarán las dos funciones:
>> function r=fx1(x) r=cos(x)+1/(1+x^2); end
>> function r=gx1(x) r=acos(-1/(1+x^2)); end
Se grafica “fx1”:
>> x1=-10:0.1:10; y1=fx1(x1); plot(x1,y1)
El resultado (la gráfica) se presenta en la siguiente página y como se
puede ver existen varias soluciones. Tomando como valor inicial el que se
muestra en la figura (x=1.83) y llamando al método de sustitución directa
(con “gx1”), se obtiene:
ECUACIONES ALGEBRAICAS - 1 - 7 -
>> susdir($gx1,1.83,1e-15,100)
x2 = 1.8073753791824754
Que es la solución buscada.
2. Encuentre las soluciones del siguiente sistema de ecuaciones no linea-
les:
3 x 2.1 – 5 y=7.0
1.2
y +4 z=14.3
x+ y 2 +z 2=14.0
Primero llevamos el sistema de ecuaciones a las formas “f(x)=0” y
“x=g(x)”:
2.1
3 x −7.0
y=
5
14.3− y 1.2
z=
4
f (x )=x+ y +z 2 −14.0=0
2
3 x 2.1−7.0
y=
5
14.3− y 1.2
z=
4
x=14− y − z 2=g ( x)
2
Dado que en este caso se pide las tres soluciones, se programan como fun-
ciones “y”, “z”, así como las funciones “f(x)” y “g(x)”:
>> function r=fy(x) r=(3*x^2.1-7)/5; end
- 8 - Hernán Peñaranda V.
Donde como se puede ver existen dos soluciones, una cerca a 1.727 y otra
cerca a 1.943. Empleando estos valores como valores iniciales en el método
de sustitución directa se obtiene:
>> susdir($gx2,1.727,1e-15,100)
x2 = 1.9437970850630633
>> susdir($gx2,1.943,1e-15,100)
x2 = 1.9437970850630628
Como se puede ver, en este caso el método de sustitución directa sólo
converge hacia la segunda solución. La anterior entonces es una de las so-
luciones del sistema, el valor de “x”. Los valores de “y” y “z” se obtienen
de las funciones respectivas:
>> fy(ans)
ans = 1.022803520608523
>> fz(ans)
ans = 3.3181434377024375
3. Encuentre la o las soluciones de la siguiente función con una precisión
o error de 12 dígitos y un límite de 30 iteraciones.
f ( x 1 )=L1⋅x1 +V 1⋅y 1 – C 0=0
L
L1 = c
1− x1
ECUACIONES ALGEBRAICAS - 1 - 9 -
V 1=M – L 1
y1 =1.42 x1
Lc =L0 (1−x 0 )
M = L0+V 0
C 0= L0 x 0+V 0 y 0
L0=300 ; x 0 =0 ;
V 0 =100 ; y 0 =0.2
Se programa la función. Al igual que en los ejemplos anteriores se pro-
graman las dos formas “f(x)=0” (para la gráfica) y “x=g(x)” (para el méto-
do), siendo la función para la segunda forma:
C 0−V 1⋅y 1
x 1= =g ( x 1)
L1
function r=fx3(x1)
L0=300; x0=0; V0=100; y0=0.2;
C0=L0*x0+V0*y0;
M=L0+V0;
Lc=L0*(1-x0);
y1=1.42*x1;
L1=Lc/(1-x1);
V1=M-L1;
r=L1*x1+V1*y1-C0;
end
function r=gx3(x1)
L0=300; x0=0; V0=100; y0=0.2;
C0=L0*x0+V0*y0;
M=L0+V0;
Lc=L0*(1-x0);
y1=1.42*x1;
L1=Lc/(1-x1);
V1=M-L1;
r=(C0-V1*y1)/L1;
end
Se elabora la gráfica de la función para obtener valores iniciales apro-
ximados:
>> x3=0:0.01:0.8; y3=fx3(x3); plot(x3,y3)
El resultado (la gráfica) se muestra en la siguiente página y como se
puede ver existen dos soluciones: una cerca a 0.04366 y otra cerca a
0.7673. Empleando estos valores iniciales con el método de sustitución di-
recta se obtiene:
>> susdir($gx3,0.04366,1e-12,30)
x2 = 0.04587771997405932
>> susdir($gx3,0.7673,1e-12,30)
0.04587772006722565
susdir, no conv.
Como se puede ver, en el primer caso se obtiene la solución (con 12 dígi-
tos de precisión), mientras que en el segundo no converge en las 30 itera-
ciones establecidas como límite. Como se puede observar, por el último va-
lor devuelto, en el segundo caso el método converge hacia la primera solu-
ción, no a la segunda.
- 10 - Hernán Peñaranda V.
1.1.3. Ejercicios
f ( x )=2x+1 – e x =0
3. Encuentre la o las soluciones de la siguiente función. Estime los valo-
res iniciales mediante la gráfica de la función.
2 x 2+5 x y – 4 x=115
x+ y
e 5
+ x 2 y 2 – 70 y=15
4. Encuentre la o las soluciones de la siguiente función con 9 dígitos de
precisión (o exactitud) y un límite de 50 iteraciones. Estime los valo-
res iniciales mediante la gráfica de la función.
15 y + 20 x 2 − x 3 = 1500
x
2
9 z − 1.5 x + = 300
e 2
2 3
y − z − 5 x = 166.81
g x = g(x)
g2 g3
g(x)
g1
x1 x2 x3 x
Numéricamente el nuevo valor de “x” (x 3) se calcula tomando en cuenta la
ecuación de la línea recta:
g =a+b x (2.5)
Por lo tanto la pendiente de la recta que pasa a través de los dos puntos
(b) es:
g 1=a+b x1
g2=a+b x 2
g 1−g 2
b= (2.6)
x 1−x 2
Entonces el valor de la ordenada en el origen (a) es:
g1 – g2
g 1=a+ x
x1 – x2 1
g1 x1 – g2 x1
a=g 1 –
x1 – x2
g2 x1 – g1 x2
a= (2.7)
x 1−x 2
En consecuencia la ecuación de la línea recta que pasa a través de los
dos puntos es:
g 2 x1 – g 1 x 2 g 1−g 2
g= + x (2.8)
x 1−x 2 x 1− x 2
En la intersección x y g son iguales, por lo tanto:
g 2 x 1 – g 1 x 2 g 1−g 2
x 3= + x
x 1−x 2 x 1−x 2 3
- 12 - Hernán Peñaranda V.
(
x3 1 –
g1 – g 2
x1 – x 2
=
)g 2 x1 – g1 x2
x1 – x2
x3
( x 1 – x 2 – g 1+g 2
x1 −x 2 )g x –g x
= 2 1 1 2
x1 −x 2
g2 x1 – g1 x2
x 3= (2.9)
g 2 – g 1+x 1−x 2
Que es la ecuación de Wegstein. Con esta ecuación se calcula “x3” y con
“x3” se calcula el valor de la función (g 3=g(x3)). Si x3 y g3 son iguales el
proceso concluye, caso contrario se repite.
Si bien el método de Wegstein acelera el proceso de convergencia y mejora
la probabilidad de convergencia, tiene el inconveniente de no ser muy pre-
ciso, no por el método en sí, sino por los errores de redondeo que se gene-
ran al aplicar la ecuación 2.9.
Por ejemplo, para resolver la siguiente función:
0.36
x=( 52+3 √ x – 8 x 0.8 ) =g ( x )
Cuyo programa (elaborado ya en el método anterior) es:
function r=gx(x) r=(52+3*sqrt(x)-8*x^0.8)^0.36; end
Primero se calculan los valore iniciales (asumiendo un valor inicial
igual a 1.1):
>> x1=1.1, g1=gx(x1), x2=g1, g2=gx(x2)
x1 = 1.1
g1 = 3.984055387788424
x2 = 3.984055387788424
g2 = 3.5520121320219027
Luego se calculan los valores de “x3” y “g3”:
>> x3=(g2*x1-g1*x2)/(g2-g1+x1-x2), g3=gx(x3)
x3 = 3.6083015838499186
g3 = 3.609880287208415
Como sólo son iguales en los 3 primeros dígitos, se repite el proceso:
>> x1=x2; x2=x3; g1=g2; g2=g3; x3=(g2*x1-g1*x2)/(g2-g1+x1-x2), g3=gx(x3)
x3 = 3.6096696044949996
g3 = 3.6096710821408844
Ahora son iguales en 5 dígitos. Repitiendo el proceso tres veces más re-
sulta:
>> x1=x2; x2=x3; g1=g2; g2=g3; x3=(g2*x1-g1*x2)/(g2-g1+x1-x2), g3=gx(x3)
x3 = 3.609670886144548
g3 = 3.6096708861393614
>> x1=x2; x2=x3; g1=g2; g2=g3; x3=(g2*x1-g1*x2)/(g2-g1+x1-x2), g3=gx(x3)
x3 = 3.6096708860692996
g3 = 3.6096708861508695
>> x1=x2; x2=x3; g1=g2; g2=g3; x3=(g2*x1-g1*x2)/(g2-g1+x1-x2), g3=gx(x3)
x3 = 3.60968068878674
g3 = 3.6096693870297387
Como se puede observar en la tercera repetición la precisión incrementa a
11 dígitos (11 dígitos son iguales), pero en la cuarta disminuye a 10 y en
ECUACIONES ALGEBRAICAS - 1 - 13 -
la quinta ¡a 5!. Esto se debe, como se dijo, a los errores de redondeo que
se generan al aplicar la ecuación de Wegstein.
Si se vuelve a aplicar una vez más el método se obtiene:
>> x1=x2; x2=x3; g1=g2; g2=g3; x3=(g2*x1-g1*x2)/(g2-g1+x1-x2), g3=gx(x3)
x3 = 3.609670886126088
g3 = 3.6096708861421853
Que una vez más tiene 11 dígitos de precisión. Este comportamiento “osci-
latorio” se repite indefinidamente y el método nunca alcanza una precisión
superior a los 11 dígitos. En general, por este hecho, el método de
Wegstein sólo puede ser empleado para obtener soluciones con unos 10 dígi-
tos de precisión, siendo suficiente para ello unas 30 iteraciones.
g1 = g(x1)
x2 = g1
g2 = g(x2)
x3=(g2*x1-g1*x2)/(g2-g1+x 1-x2)
g3 = g(x3)
[else] [c = li]
c = c+1
No
mostrar x3 converge
x 1 = x2
x 2 = x3
g2 = g3
4.1.2. Ejemplos
(
x=acos −( 1+ x
2 −1
) )=g ( x)
La función a resolver es:
>> function r=gx1(x) r=acos(-1/(1+x^2)); end
La función a graficar, así como la gráfica son las mismas que en el
ejemplo 1. Empleando el valor inicial de dicho ejemplo, pero con un error
igual a 1e-10, se obtiene:
>> wegstein($gx1,1.83,1e-10,30)
g3 = 1.8073753791849345
5. Resuelva el ejemplo 2, del método de sustitución directa, por el método
de Wegstein.
3 x 2.1−7.0
y=
5
14.3− y 1.2
z=
4
x=14− y − z 2=g ( x)
2
g3 = 1.9437970850870676
En este caso, aún cuando la precisión es menor, el método de Wegstein
converge hacia las dos soluciones y no solo una como ocurre con el método
de sustitución directa.
6. Resuelva el ejemplo 3, del método de sustitución directa, por el método
de Wegstein.
C 0−V 1⋅y 1
x 1= =g ( x 1)
L1
L
L1 = c
1−x 1
V 1 =M – L1
y 1=1.42 x 1
L c= L0 (1− x 0)
M =L 0+V 0
C 0=L 0 x 0 +V 0 y 0
L 0=300 ; x 0=0 ;
V 0=100 ; y 0=0.2
El programa de la función a resolver es:
function r=gx3(x1)
L0=300; x0=0; V0=100; y0=0.2;
C0=L0*x0+V0*y0;
M=L0+V0;
Lc=L0*(1-x0);
y1=1.42*x1;
L1=Lc/(1-x1);
V1=M-L1;
r=(C0-V1*y1)/L1;
end
El programa de la función a graficar, así como la gráfica obtenida son
las mismas que en dicho ejemplo. Empleando los valores iniciales del men-
cionado ejemplo se obtiene:
>> wegstein($gx3,0.04366,1e-10,30)
g3 = 0.04587771997387189
>> wegstein($gx3,0.7673,1e-10,30)
g3 = 0.7675025617885648
Una vez más, aun cuando la precisión es menor, el método de Wegstein con-
verge hacia las dos soluciones existentes (y no a una como ocurre con el
método de sustitución directa).
4.1.3. Ejercicios