Академический Документы
Профессиональный Документы
Культура Документы
Resolucin de ecuaciones
OBJETIVOS:
ORIENTACIONES:
Mircoles 7 de diciembre:
Resolucion en Matlab de sistemas de ecuaciones lineales.
Clculo de los ceros de una funcin. Mtodos iterativos.
Lunes 19 de diciembre:
Aplicacin fsica: Leyes de Kirchho.
Mircoles 21 de diciembre:
Aplicacin fsica: Puntos de retroceso en un sistema conservativo 1D.
Descripcin de los proyectos propuestos.
109
110 UNIDAD 3. RESOLUCIN DE ECUACIONES
o siendo ms explcitos
1 11 12 1 1
2 21 22 2 2
.. = .. .. .. ..
...
. . . . .
1 2
X
=
=1
1
Supondremos que trabajamos con valores reales. Sin embargo no hay diferencia esencial alguna si trabajamos
con nmeros complejos, ya que entonces los espacios lineales involucrados sern C y C .
3.1. ALGEBRA LINEAL CON MATLAB: ECUACIONES LINEALES 111
rg(A) = dim(ker(A)) =
esto es, la diferencia entre la dimensin algebraica del espacio lineal sobre el que acta A y la
dimensin algebraica del ncleo de A. Si previamente hemos obtenido una base de ker(A) medi-
ante la funcin null el clculo del rango es inmediato. Ahora bien, si slo estamos interesados
en conocer rg(A), lo mejor es usar la funcin rank:
As, el clculo del krnel de la aplicacin lineal A equivale a la resolucin del sistema
homogneo de ecuaciones lineales con incgnitas A = 0. Desarrollando:
11 12 1 1 0 11 1 + 12 2 + + 1 = 0
21 22 2 2 0 21 1 + 22 2 + + 2 = 0
. .. ..
.. = .. ..
. ...
. . . . . .
1 2 0 1 1 + 2 2 + + = 0
La solucin general de A = 0 ser entonces cualquier vector del krnel de A, y se suele decir
que dicha solucin tiene dimensionalidad o degeneracin = dim(ker(A)) = rg(A). Si 1
hay infinitas soluciones y el sistema se dice compatible indeterminado. Si ker(A) = {0}
entonces la nica solucin es la trivial = 0 y el sistema es compatible indeterminado.
Vemos entonces que = dim(ker(A)) = 3, por lo que el rango de A es 5 3 = 2, algo que puede
comprobar mediante rank(A) (o incluso a simple vista).
1 1 + 2 2 + + = 0 con = 1 2
todos ellos de dimensin 1 (esto es, la solucin ser la interseccin de rectas si tenemos
= 2 incgnitas, de planos si = 3, de espacios 3D si = 4, etc.).
De esta manera se tiene una equivalencia entre un problema algebraico y otro geomtrico,
lo que puede ayudar a visualizar mejor el problema. Por ejemplo, supongamos que tenemos
= 3 incgnitas. Si = 1 la solucin ser con toda seguridad un plano (obvio); si = 2
la solucin puede ser una recta (interseccin de dos planos), un plano (si los dos planos son el
mismo), o no existir (si los planos son paralelos); si 3 la solucin puede ser un punto, una
recta, un plano, o no existir.
(
X R
A = b = 0 + con
=1
{1 } base de ker(A)
donde 0 es una solucin particular del sistema de ecuaciones. Esto es, la solucin
general del sistema de ecuaciones es igual a una solucin particular del mismo ms
la solucin general del problema homogneo A = 0.
La dimensionalidad o degeneracin de la solucin es = dim(ker(A)) = rg(A).
Por tanto, si = 0 la solucin es un nico punto de R y el sistema de ecuaciones
es compatible determinado. Si 1 hay infinitas soluciones y el sistema de
ecuaciones es compatible indeterminado.
Matlab obtiene una solucin del problema lineal compatible A*x = b mediante la operacin
A\b. Ahora bien, si el sistema es incompatible, A\b tambin proporciona un resultado: las
coordenadas del vector que mejor verifican el sistema de ecuaciones en sentido de mnimos
cuadrados. Esto es, si A es una matriz y b un vector columna de dimensin ,
As, el procedimiento para resolver un sistema de ecuaciones lineales con incgnitas ser:
EJERCICIO 3.1.a
Consideremos los dos sistemas de ecuaciones lineales con tres incgnitas
2 + 3 = 2 )
2 + 3 = 2
= 2 ;
4 2 + = 1
4 2 + = 1
Imaginemos que tenemos definida () mediante una funcin annima g(x). Ya propusimos
la realizacin de una funcin de script que determinase los ceros de () en un intervalo [ ]
en el que la funcin es continua. La idea era dividir [ ] en subintervalos y usar el resultado
para acotar los ceros. A continuacin, obtenamos una aproximacin 1 al cero en el intervalo
( +1 ) suponiendo que la funcin () es una recta en el intervalo [ +1 ].
El problema es que debemos usar un paso = +1 muy pequeo para tener
resultados precisos. En todo caso, lo esencial es que sea lo suficientemente pequeo para
tener la seguridad de que hay una raz y slo una en el intervalo ( +1 ). Si somos capaces
de construir un algoritmo que nos d con precisin tal raz, habremos ganado bastante.
Naturalmente, Matlab tiene una funcin implcita construida a tal fin. Es la funcin fzero
cuyas dos sintaxis bsicas son las siguientes:
As, si () tiene una nica raz , la podemos calcular sencillamente mediante la orden
fzero(g,a), donde a es un valor arbitrario pero conveniente. Por ejemplo, la funcin () =
+ + tiene una nica raz . Entonces
116 UNIDAD 3. RESOLUCIN DE ECUACIONES
EJERCICIO 3.2.a
Obtenga numricamente las soluciones de la ecuacin trascendente (1 + 2 ) cos() = 1 en el
intervalo [1 4].
EJERCICIO 3.2.b
Consideremos la funcin continua
2 si 0
2
() = 3 sin () si 0 1
(1)2
1 si 1
Represente grficamente las funciones = () e = 2 en el intervalo [3 3]. Obtenga
numricamente las soluciones a la ecuacin () = 2 en dicho intervalo.
Sugerencia: Las funciones escaln (de Heavyside) y barrera son
( (
1 si 1 + sign( ) 1 si [ ]
() = = ; [] () = = ()()
0 si 2 0 si 6 [ ]
118 UNIDAD 3. RESOLUCIN DE ECUACIONES
() ' () + 0 () ( )
Como consecuencia,
() = 0 0 ' () + 0 () ( )
()
'
0 ()
Ya que estamos suponiendo que () es una recta en [ ]
() ()
0 () '
Sustiyendo en la expresin de llegamos a
() ()
() ' () + ( )
que es la expresin que usamos en nuestra funcin myzeros.m.
Si nos percatamos, lo que estamos haciendo es despreciar trminos de orden ( )2 en los
desarrollos en serie de Taylor, por lo que el error cometido es de orden ()2 . Esto explica por
qu si usamos la funcin de script myzeros.m con una distretizacin = 104 obtenemos un
resultado con una precisin ()2 = 108 .
( 1 )1
' 1 con = ( ) si 1
1
no es una idea tan mala. Incluso la podemos aplicar si el array X no es equiespaciado. Haciendo
las modificaciones necesarias de la funcin myzeros.m tenemos la funcin de script fdzeros.m
(fd = funcin discretizada)
3.2. CEROS DE UNA FUNCIN DE UNA VARIABLE 119
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% function Z = fdzeros(F,X)
% Calculo de los ceros de la funcion f(x) mediante interpolacion lineal.
% Inputs:
% X : Array de longitud Nx con los valores de x
% F : Array de longitud Nx con los valores de f(x)
% Output:
% Z : array fila con los ceros de f(x) en el intervalo [X(1),X(N)]
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function Z = fdzeros(F,X)
Nx = numel(X) ; % Numero de puntos
S = sign(F) ; % Array con los valores de sign(F)
Z = [] ; % Inicialmente, Z es la matriz vacia
numz = 0 ; % Este sera un indice para los ceros
% Es X(1) un cero?
if S(1) == 0
numz = numz+1 ;
Z(numz) = X(1) ;
end
% Resto de los elementos:
for n = 2:Nx
if S(n) == 0
numz = numz+1 ;
Z(numz) = X(n) ;
elseif S(n-1)*S(n) == -1
numz = numz+1 ;
p = n-1 ;
Z(numz) = X(p)-(X(n)-X(p)).*F(p)./(F(n)-F(p)); % Cero en (X(n-1),X(n))
end
end
return
end
Naturalmente podemos ir ms all y suponer que la funcin en torno al cero es una parbola.
En particular,
00 ()
() = 0 () + 0 ()( ) + ( )2 ' 0
2
Si ahora sustituimos 0 () y 00 () por las expresiones numricas adecuadas y despejamos
tendremos una mejor aproximacin a la raz. Intente completar el trabajo suponiendo que el
mallado X es equiespaciado.
120 UNIDAD 3. RESOLUCIN DE ECUACIONES
EJERCICIO 3.2.c
Imagine que no fue capaz de escribir una funcin annima para la funcin
2 si 0
() = 3 sin2 () si 0 1
(1)2
1 si 1
( )
+1 = con 0 =
( + ) ( )
que, de converger, lo hace a una raz de (). Este es el llamado mtodo de Newton-
Raphson, que es trementadamente eficiente excepto si cae en un punto en el que la derivada
de la funcin es nulo. En la prctica, el proceso iterativo se interrumpe cuando |( )| ,
donde es un nmero muy pequeo pero finito.
En el caso de que tengamos acotado el cero (i.e. ), podemos seguir un procedimiento
de acotaciones sucesivas. En efecto, supongamos que () 0 y que () 0 y llamemos
+ = y = . Aproximando () a una recta, el cero de la funcin acotado por y + es:
(+ )( )
'
(+ ) ( )
Si () 0 entonces hacemos la reasignacin + = y, en caso contrario, = . Repetimos
el proceso hasta que |()| .
2
Realmente hacen mucho ms, pero nicamente queremos que se quede con la idea.
3.3. CIRCUITOS ELCTRICOS. LEYES DE KIRCHHOFF 121
EJERCICIO 3.2.d
Escriba una funcin de script, newtonraph.m, que implemente el algortimo de Newton-Raphson
para obtener un cero de la funcin annima () a partir de un valor inicial = . La sintaxis
de la funcin ha de ser:
[z,err,niter] = newtonraph(g,a,dx)
donde los inputs son: la funcin annima g, el valor inicial de bsqueda a, y el intervalo para
el clculo numrico de la derivada dx. Los outputs sern: el cero de la funcin z, el error
en el resultado definido como err = abs(g(z)), y el nmero de iteraciones necesarias para la
convergencia niter. A tal fin construya la funcin basndose en una estructura while que se
interrumpir bien cuando err 10.*eps (eps es la precisin en los clculos de punto flotante
y es orden de 1016 , aunque el valor especfico depende de cada arquitectura) o bien cuando
niter 1000. En general, el algortimo Newton-Raphson converge a las pocas iteraciones, por
lo que si son necesarias ms de 1000 es signo evidente de que algo va mal (probablemente una
mala eleccin de a o de dx o, simplemente, que la funcin no tiene ceros).
donde es la carga en la placa etiquetada como positiva e la corriente que circula por la
resistencia. Puesto que a priori los valores de y de son desconocidos, se har una asignacin
provisional de las placas positivas de los condensadores y de los sentidos de las corrientes. Los
signos de los valores obtenidos confirmarn (si son positivos) o corregirn (si son negativos) las
asignaciones previas.
Naturalmente hemos de ser consistentes con las unidades. Por ejemplo, si las fems
estn en voltios (V), las resistencias en kilo-ohmios (k), y las capacidades en picofaradios
(pF), entonces las caidas de potencial estarn en voltios, las intensidades en miliamperios (mA)
y las cargas en picocoulombios (pC).
Recordemos ahora las leyes de Kirchho:
Ley de los nudos o de conservacin de la carga: La suma de las intensidades
de corrientes que confluyen a un mismo punto (nudo) es nula.
Ley de las mallas o de conservacin de la energa: La suma de las cadas de
potencial a lo largo de una trayectoria cerrada del circuito (malla) es nula.
donde to (from) simboliza las ramas conectadas al nudo cuyo sentido positivo va
hacia (sale desde) dicho nudo. Tngase en cuenta que las intensidades en las ramas con
condensador son nulas.
iv) Escribir y simplificar las ma ecuaciones correspondientes a la ley de las mallas
X X
1
+ = E con = 1 ma
De esta manera tenemos un sistema de, como mximo, nu +ma ecuaciones con incgnitas:
las intensidades en las ramas sin condensador y las cargas de los condensadores. Implementando
en Matlab tal sistema y resolvindolo habremos solucionado el problema. Por lo general, el
sistema de ecuaciones ser redundante (habr ecuaciones que se podrn escribir como com-
binacin lineal de otras), pero a efectos del trabajo numrico no habr problema ya que los
algoritmos que usa Matlab al invocar la operacin \ contemplan esta posibilidad.
Analicemos el sencillo circuito de la figura adjunta,3 en el que: las bateras tienen las fem
E1 = 10 V E2 = 8 V indicadas; todas las resistencias son = 2 k; y las capacidades de
los condensadores son = 5 nF. En la propia figura ya hemos identificado las = 9 ramas
con sus sentidos positivos, los nu = 6 nudos, y las ma = 4 mallas con sus sentidos de giro
positivo.
nudo 1 : 1 + 4 + 5 = 0 nudo 4 : 3 4 7 = 0
nudo 2 : 1 + 2 = 0 (9 = 0) nudo 5 : 5 6 = 0 (9 = 0)
nudo 3 : 2 3 = 0 (8 = 0) nudo 6 : 6 + 7 = 0 (8 = 0)
malla 1: 03 + 4 = E1 E2 4 = E1 E2
malla 2: (1)9 + 25 = E1 25 + (1)9 = E1
malla 3 : (1)9 + 6 + (1)8 = E2 6 + (1)8 + (1)9 = E2
malla 4: 03 + 7 + (1)8 = 0 7 + (1)8 = 0
3
No es broma.
124 UNIDAD 3. RESOLUCIN DE ECUACIONES
y podemos verificar que x = A\v es solucin comprobando que A*x es igual a v (salvo errores
de redondeo que en este ejemplo no van a aparecer). En suma, la solucin del problema es:
1 = 2 = 3 = 125 mA ; 4 = 1 mA ; 5 = 6 = 7 = 025 mA ; 8 = 25 nC ; 9 = 45 nC
(observe que placa positiva del condensador situado en la rama 8 es la contraria a la que
habamos supuesto).
EJERCICIO 3.3.a
Consideremos el siguiente circuito, en el que la capacidad del condensador es = 10 pF y la
fem de la batera es E = 10 . Las resistencias hmicas del circuito son: 1 = 2 k; 2 = 4 k
y 3 es una resistencia variable con un rango 3 [0 100] k. Aunque este circuito puede
resolverse sin problema a mano (de hecho ni siquiera hacen falta las leyes de Kirchho),
obtenga numricamente la carga del condensador, para 3 = 0 1 2 100 . Represente
grficamente en funcin 3 .
3.4. SISTEMAS CONSERVATIVOS 1D. PUNTOS DE RETROCESO 125
EJERCICIO 3.4.a
Una partcula de masa se mueve en una dimensin bajo la accin de una fuerza () que
deriva de la energa potencial
(
1 exp (2 2 ) si 0
() = 0 2 2 2
() exp ( ) si 0
Consideremos que = 25 cm, 0 = 4 J, y = 50 g. En el instante inicial 1 = 0 la partcula
se encuentra en 1 = 0. Trabajando en un intervalo espacial discretizado adecuado:
1. Defina dos funciones annimas para () y para |( )|.
2. Obtenga numricamente la fuerza () y represntela grficamente.
3. Halle numricamente y muestre en pantalla los puntos de equilibrio. Determine si son
estables o inestables.
4. Represente en una segunda grfica la energa potencial. Marque sobre el eje de abscisas
los puntos de equilbrio obtenidos en el apartado anterior.
5. Superponga a esta segunda grfica las rectas = con: i) = 0 4; ii) = 0 2;
iii) = 0 ; iv) = 20 . Determine visualmente que tipo de movimiento (acotado,
semiacotado, no acotado) seguir la partcula en cada caso (no olvide que 1 = 0).
6. Para los movimientos acotados o semiacotados, halle numricamente los puntos de retro-
ceso de la partcula.
7. Supongamos que 1 0. Represente en una misma grfica frente a para 0 en los
cuatro casos indicados en el apartado 5 (trayectoria en el espacio de las fases).