You are on page 1of 18

Unidad 3

Resolucin de ecuaciones

OBJETIVOS:

1. Resolver numricamente sistemas de ecuaciones lineales con incgnitas.


2. Calcular numricamente los ceros o races de una funcin de una variable real.

3. Implementar y resolver en Matlab las leyes de Kirchho.


4. Analizar con la ayuda de Matlab los tipos de movimiento de una partcula bajo una
fuerza conservativa en una dimensin.

ORIENTACIONES:

En esta tercera unidad (cuarta en el orden de exposicin) nos centraremos en la res-


olucin mediante Matlab de dos problemas sencillos pero importantes: sistemas de
ecuaciones lineales y el clculo de los ceros de una funcin. Aplicaremos lo aprendido a
dos problemas fsicos especficos: circuitos de corriente continua, y anlisis (cualitativo)
del movimiento de una partcula que se mueve en una dimensin espacial bajo una fuerza
() = (), donde () es la energa potencial.

En principio dedicaremos tres sesiones (9 horas) a este tema:

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

3.1 Algebra Lineal con Matlab: ecuaciones lineales


3.1.a Ncleo y rango de una aplicacin lineal. Funciones null y rank
Sea una matriz real A de dimensin . A define una aplicacin lineal A : R R ,
tal que el resultado de la actuacin de A sobre un vector R es el vector b R dado
por:
b = A

o siendo ms explcitos

1 11 12 1 1

2 21 22 2 2
.. = .. .. .. ..
...
. . . . .
1 2

En consecuencia, la coordenada -sima de b en la base cannica de R ser

X

=
=1

siendo la -sima coordenada de en la base cannica de R .1

Definimos el ncleo o krnel de la matriz A (o de la aplicacin lineal A), ker(A), como


el subconjunto de R formado por aquellos vectores R tales que A = 0. Debido al
carcter lineal de A, el krnel es un subespacio lineal de R . Por tanto, si es la dimensin
algebraica de ker(A) y {1 } es una base de ker(A), entonces podemos escribir:
( )
X
ker(A) = { R tal que A = 0} = lin{1 } = con R
=1

siendo lin la envolvente lineal.


Matlab calcula el kernel de una matriz mediante la funcin null:

W = null(A) ; % Calcula la matriz que contiene una base ortonormal {1 }


de ker(A). Esto es, la -sima columna de W es igual a las coordenadas del vector de
la base. Si ker(A) = {0}, el resultado es la matriz vaca de filas y 0 columnas.

Por tanto, el nmero de columnas de null(A) es igual a . En concreto


[N , g] = size(null(A)) ;

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

El rango de A se define (entre muchas maneras) como

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:

rank(A) ; % Calcula el rango de la matriz A.


Cuando se invocan las funciones null o rank, Matlab aplica un serie de algoritmos sobre la
matriz A que no vamos a ver aqu. Si tiene curiosidad, busque singular value decomposition en
Internet o en las Numerical Recipes.

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.

Veamos un ejemplo. Consideremos el sistema de ecuaciones lineales homogneo



1

21 + 32 + 3 + 4 + 25 = 0 2 3 1 1 2 2 0



51 + 32 + 63 + 4 + 45 = 0 5 3 6 1 4 3 = 0


61 + 103 + 45 = 0 6 0 10 0 4 4 0
5

que es equivalente a encontrar el krnel de la matriz A


A = [2,3,1,1,2 ; 5,3,6,1,4 ; 6 0 10 0 4] ;
El resultado de W = null(A) es, en formato short,
-0.6086 -0.3668 -0.4553
0.5094 -0.0615 -0.2204
0.4405 0.2660 -0.0695
-0.3750 0.8819 -0.0722
-0.1882 -0.1149 0.8568
112 UNIDAD 3. RESOLUCIN DE ECUACIONES

y la solucin general del sistema de ecuaciones ser



1 06086 03668 04553

X3 2 05094 00615 02204

= 3 ' 1 04405 + 2

02660 + 3
00695

=1
4 03750 08819 00722
5 01882 01149 08568

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).

3.1.b Sistemas de ecuaciones lineales. La operacin A\x


Consideremos ahora el sistema de ecuaciones lineales con incgnitas

11 1 + 12 2 + + 1 = 1
11 12 1 1 1


21 1 + 22 2 + + 2 = 2 21 22 2 2 2
.. .. .. ... ..
..
=
..

.
. . . . .



1 1 + 2 2 + + = 1 2

que, en notacin compacta escribiremos como A = b. El sistema se dir compatible deter-


minado si tiene una nica solucin, compatible indeterminado si tiene infinitas soluciones,
e incompatible si no tiene solucin.
Algebraicamente, la solucin del sistema de ecuaciones lineales A = b es el subconjunto
de vectores de R que forman la anti-imagen de b R bajo la aplicacin A.
Geomtricamente, la solucin es la interseccin de los hiperplanos de R

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.

La existencia o no de soluciones est dada por el conocido

Teorema de Rouch: El sistema de ecuaciones A = b es compatible si y slo


si el rango de la matriz de coeficientes A es igual al rango de la matriz
( + 1) ampliada A|b = [A b].
3.1. ALGEBRA LINEAL CON MATLAB: ECUACIONES LINEALES 113

Supongamos que el sistema de ecuaciones A = b es compatible. Entonces:

Teorema: La solucin general del sistema de ecuaciones compatible A = b es un


subespacio afn de R :


(
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 ,

x = A\b ; % Calcula numricamente un vector columna x de dimensin que minimiza


norm(A*x-b). Si el sistema de ecuaciones es compatible, entonces x es una solucin del
sistema de ecuaciones lineales A*x = b.

As, el procedimiento para resolver un sistema de ecuaciones lineales con incgnitas ser:

i) Comprobar si es compatible usando el teorema de Rouch.


ii) En caso afirmativo, obtener una solucin particular.
iii) Si rg(A) 6= , obtener una base de ker(A) para tener la solucin general.

Veamos un ejemplo. Consideremos el sistema de ecuaciones lineales



1

21 + 32 + 3 + 4 + 25 = 1 2 3 1 1 2 2 1

51 + 32 + 63 + 4 + 45 = 2 5 3 6 1 4 3
= 2



61 + 103 + 45 = 0 6 0 10 0 4 4 0
5

que es equivalente a A = b con:


A = [2,3,1,1,2 ; 5,3,6,1,4 ; 6 0 10 0 4] ;
b = [1;2;0] ;
114 UNIDAD 3. RESOLUCIN DE ECUACIONES

Calculemos ahora una base del krnel de A


W = null(A) ;
y obtengamos y mostremos el rango de A
[N0, g] = size(W) ;
rango_A = N0 - g
Definamos la matriz ampliada de dimensin 3 6
Ab = [A , b] ;
y calculemos y mostremos su rango
rango_Ab = rank(Ab)
De acuerdo con el teorema de Rouch, el sistema de ecuaciones tiene solucin si rango_A =
rango_Ab. Por tanto, si se cumple la condicin podemos calcular la solucin y mostrarla:
if rango_A ~= rango_Ab
disp(Sistema de ecuaciones incompatible)
else
x0 = A\b ; % Solucion particular
disp(Solucin particular de A*x = b:)
disp(x0)
disp([Degeneracion: ,num2str(g)])
if( g ~=0)
disp(Base de ker(A):)
disp(W)
end
end
En el presente ejemplo, el sistema es incompatible (comprubelo).

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

Para cada uno de ellos:

1. Compruebe que es compatible y vea si es determinado o indeterminado.


2. Obtenga la solucin general.
3. Halle grficamente las soluciones. A tal fin represente los planos cuya interseccin define
la solucin del problema.
3.2. CEROS DE UNA FUNCIN DE UNA VARIABLE 115

Si A es una matriz y B una matriz , el resultado de la operacin A\B es una


matriz X de dimensin tal que A*X = B. Como consecuencia, la -sima columna de X es
solucin del sistema de ecuaciones A x = B(: k). Esta opcin es til si tenemos que resolver el
sistema de ecuaciones para diferentes vectores b.
Relacionado con esto, si A es una matriz cuadrada
A\eye(N) ;
ser la inversa de A si es invertible [esto es, si rank(A) = N]. De hecho esta manera de calcular
la inversa es preferible a inv(A), puesto que la operacin \ hace un uso ms extensivo y eficiente
de las libreras de clculo de algebra lineal que tiene Matlab preinstaladas que la funcin inv.

3.2 Ceros de una funcin de una variable


3.2.a La funcin implcita fzero
Consideremos una funcin real de una variable real (). R es un cero o raz de la
funcin () si () = 0. Grficamente, los ceros de una funcin son las abcisas de los puntos
de corte de la curva = () con el eje de abcisas = 0. Por tanto, una mera representacin
grfica de la funcin () para el intervalo [ ] nos indica visualmente los ceros de ().

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

( )(+1 ) 0 () tiene un cero en ( +1 )

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:

fzero(g,[a,b]) % Si g(a)*g(b) 0, proporciona una raz de g(x) en el intervalo [ ]


fzero(g,a) % Proporciona una raz de g(x) cerca de a (no siempre la ms cercana)

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

g =@(x) exp(x)+x; z = fzero(g,0) ; disp(num2str(z,%.8f))


nos proporciona con ocho decimales ( = 056715329). El resultado hubiera sido el mismo
usando z = fzero(g,[-10,0]), pero si intentamos evaluar fzero(g,[0,10]) tendremos un
mensaje de error, puesto que (0) y (10) son positivos.
A efectos prcticos, modificando la funcin de script myzeros.m tenemos una manera
cmoda de obtener con precisin los ceros de una funcin en un intervalo dado. La nueva
funcin de script fazeros.m (fa = funcin annima) cumple esta labor:
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% function fazeros(func,a,b,dx)
% Calculo de los ceros de la funcion anonima func en el intervalo [a,b]
% acotando la busqueda en intervalos de anchura dx (aprox.)
% Uso Z = fazeros(func,a,b,dx)
% Z es el array fila que contiene los ceros
% Utiliza la funcion implicita de Matlab fzeros
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function Z = fazeros(func,a,b,dx)
Nv = ceil(1+(b-a)/dx) ; % Numero de puntos del array
X = linspace(a,b,Nv) ; % Mallado para la variable independiente
F = func(X) ; % Array con los valores de func(X)
S = sign(F) ; % Array con los valores de sign(func(X))
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:Nv
if S(n) == 0
numz = numz+1 ;
Z(numz) = X(n) ;
elseif S(n-1)*S(n) == -1
numz = numz+1 ;
Z(numz) = fzero(func,[X(n-1),X(n)]) ; % Cero en (X(n-1),X(n))
end
end
return
end
3.2. CEROS DE UNA FUNCIN DE UNA VARIABLE 117

Como ejemplo obtengamos numricamente las races de la funcin



3
() = ( ) log cos() +
2
en el intervalo [5 5]. Para ello definamos la funcin annima correspondiente y hagamos una
grfica previa
g =@(x) (exp(-x)-x).*log((cos(x)+1.5)) ;
Xr = linspace(-5,5,101) ; % Array para representacion
figure(1)
plot(Xr,g(Xr),Xr,0.*Xr)
xlabel(x),ylabel(y),legend(y = g(x),y = 0),box on, grid on
xlim([-5,5]),ylim([-25,25])
Vemos (comprubelo) que hay cinco ceros en el intervalo [5 15]. A su vez = 05 es un
valor bastante seguro porque la distancia entre dos ceros sucesivos es mayor. En consecuencia
zeros_de_g = fazeros(g,-5,5,0.5) ;
disp(Raices de la funcion g(x) en [-5,5]:)
disp(num2str(zeros_de_g,%+12.8f))
nos da la solucin a nuestro problema:
-4.18879020 -2.09439510 +0.56714329 +2.09439510 +4.18879020
Para que se haga a una idea de la mejora en eficiencia, tendramos que haber usado 104
en la funcin de script myzeros.m para tener resultados con precisin de ocho cifras decimales.

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

3.2.b Races de una funcin discretizada


Consideremos una funcin () continua y derivable. Imaginemos que es un cero de la
funcin y dos valores que acotan tal cero: . Una primera aproximacin a es,
sencillamente,
+
'
2
que, obviamente, es muy mala. El error cometido es de orden = .
Una segunda aproximacin, algo ms depurada, es suponer que () es una recta en el
intervalo [ ], esto es, en torno al cero que estamos buscando. Por tanto, usando el desarrollo
de Taylor hasta orden uno en torno a tendremos que

() ' () + 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 .

En muchas ocasiones los valores de la funcin () se habrn obtenido numricamente, por


lo que la utilizacin de la funcin Matlab fzero es imposible. Por tanto, aproximar el cero
de la funcin mediante la expresin

( 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

Usando la funcin de script fdzeros.m, obtenga las soluciones a la ecuacin () = 2 en dicho


intervalo. Compare los resultados con los obtenidos en el Ejercicio 3.3.b.

3.2.c Los algortimos de Newton-Raphson y de acotaciones sucesivas


Veamos finalmente qu hace Matlab al invocar fzero(g,a) y fzero(g,[a,b]).2 Empece-
mos por el primer caso. De acuerdo con visto en el subapartado anterior, una aproximacin a
un cero de la funcin () cerca de = es:
() ()
1 ' 0
' 1 '
() ( + ) ()
donde hemos hecho la aproximacin numrica 0 () ' [( + ) ()], siendo un valor
positivo razonablemente pequeo. Si ahora repetimos el proceso pero tomando 1 en lugar de
obtendremos una segunda aproximacin al cero de la funcin
(1 )
2 ' 1
(1 + ) (1 )
y repitiendo y repetiendo tenemos la sucesin

( )
+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).

Como aplicacin, obtenga el cero de la funcin () = 3 partiendo de = 0 y usando


= 104 . Muestre adems el error err y el nmero de iteraciones que se han necesitado.
Compare el resultado con el proporcionado por la funcin implcita fzero.

3.3 Circuitos elctricos. Leyes de Kirchho


Consideremos un circuito de corriente continua en estado estacionario formado por
bateras, resistencias hmicas y condensadores. El circuito est formado por ramas, nu
nudos y ma mallas, bien entendido que el nmero de mallas es el mnimo posible que permita
que todas las ramas pertenezcan al menos a un malla. Para simplificar el tratamiento, consid-
eraremos que en una rama hay a lo sumo una componente de cada clase. De haber dos o ms se
deber hacer la asociacin en serie correspondiente. Conocidas las caractersticas del circuito,
el objetivo es obtener las intensidades de corriente en cada rama y las cargas almacenadas
en los condensadores. Tngase en cuenta que si en una rama hay un condensador entonces
la intensidad de corriente en esa rama ser nula, siendo entonces la carga del condensador la
incgnita asociada a esta rama.

Empecemos recordando las leyes para las cadas de potencial:

Componente Cada de potencial Sentido


Batera con fem E E Del polo negativo al positivo
Condensador con capacidad + (1) De la placa positiva a la negativa
Resistencia hmica + El de la corriente
122 UNIDAD 3. RESOLUCIN DE ECUACIONES

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.

Para resolver el problema debemos ser sistemticos. Una estrategia es:


i) Identificar cada rama con un ndice = 1 2 ; cada nudo con un ndice = 1 nu ;
y cada malla con un ndice = 1 ma . Conviene asignar los ndices ms altos a las
ramas con condensadores. Para la rama tendremos que: es la resistencia hmica en
la rama; 1 es la inversa de la capacidad del condensador en la rama; y E es la fem de
la batera en la rama. Obviamente, si no hay una componente de una clase en la rama
la cantidad correspondiente ( 1 E ) ser nula.
ii) Definir de manera arbitraria pero conveniente el sentido de giro de cada malla. Asignar
un sentido positivo arbitrario pero conveniente a cada rama. El sentido positivo de una
rama define el de la intensidad de corriente si no hay condensador, y el sentido placa
positivaplaca negativa del condensador si lo hubiese.

iii) Escribir las nu ecuaciones correspondientes a la ley de los nudos


X X
= 0 con = 1 nu
to from

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


donde simboliza las ramas que forman la malla , = 1 dependiendo de que


los sentidos positivos de la rama y de la malla coincidan (+1) o no (1); y = 1
3.3. CIRCUITOS ELCTRICOS. LEYES DE KIRCHHOFF 123

dependiendo de que el sentido polo negativopolo positivo de la batera coincida (+1) o


no (-1) con el sentido de giro positivo de la malla. Tngase en cuenta que las intensidades
en las ramas con condensador son nulas.

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.

Teniendo en cuenta que 8 = 9 = 0 por la presencia de un condensador, la ley de los nudos


lleva a las siguientes seis ecuaciones:

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)

Anlogamente, la ley de las mallas lleva a las siguientes cuatro ecuaciones:

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

Sustituyendo en un sistema de unidades V, k, nF, tenemos que, en forma matricial



1 0 0 1 1 0 0 0 0 0
1
1 1 0 0 0 0 0 0 0 0
2
0 1 1 0 0 0 0 0 0 0

3
0 0 1 1 0 0 1 0 0 0

4
0
0 0 0 1 1 0 0 0
0

5 = Ax=v
0 0 0 0 0 1 1 0 0 0

6
0 0 0 2 0 0 0 0 0 2

7
0 0 0 0 4 0 0 0 15 10

1
0 0 0 0 0 2 0 15 15 8

2
0 0 0 0 0 0 2 15 0 0

donde las intensidades estarn en mA y las cargas en nC.


Usando Matlab

x = A\v = (125 125 125 1 025 025 025 25 45)T

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

3.4 Sistemas conservativos 1D. Puntos de retroceso


Consideremos una partcula de masa que se mueve en una dimensin bajo la accin de
una fuerza () (aqu es la componente de la fuerza, luego () 0). Como sabemos, tal
fuerza es necesariamente conservativa, esto es, existe una funcin () denominada energa
potencial tal que Z
()
() = () = ()
0

donde 0 es un punto arbitrario pero conveniente de la recta real (origen de potenciales).4


Como bien sabemos,
1
= 2 con =
2
es la energa cintica de la particula. Entonces, la cantidad
1
= 2 + ()
2
se conserva en la evolucin, esto es, = 0. A la denominamos energa mecnica (de
la partcula) o, simplemente, energa. Ntese que () para todos los puntos por los
que pasa la partcula.
Como consecuencia, si en el instante inicial 1 = 0 la posicin y velocidad de la partcula
son 1 y 1 , respectivamente (condiciones iniciales), para cualquier instante de tiempo posterior
tendremos que la conservacin de la energa implica
r
1 2 2 1
= + ( ) = sign( ) [ ( )] con = 12 + (1 )
2 2

siendo = ( ) = ( ). Por tanto se puede obtener || en funcin de y .

Diremos que eq es un punto de equilibrio si (eq ) = 0. Adems, si () es una funcin


decreciente en = eq el punto de equilibrio es estable; siendo inestable en caso contrario.5
Si 1 = eq y 1 = 0, la partcula permanecer en reposo todo el tiempo en = eq .
Para cada valor de la energa , definimos los puntos de retroceso como aquellos en los
que () = y que no son de equilibrio:

()
ret es punto de retroceso = (ret ) y (ret ) = 6 0
=
=ret

Por conservacin de la energa, la velocidad de la partcula ha de ser cero al alcanzar un punto


de retroceso (la partcula se frena). Ahora bien, por definicin (ret ) 6= 0, e inmediatamente
despus de frenarse la partcula empezar a moverse pero en sentido contrario.
4
En dos y tres dimensiones no todas las fuerzas dependientes de la posicin son conservativas. La condicin
necesaria y suficente para que una fuerza () sea conservativa es que su rotacional sea cero.
5
Suponemos que eq es un cero aislado de ().
126 UNIDAD 3. RESOLUCIN DE ECUACIONES

Supuesto un valor 1 y una energa = 12 2 + (1 ), se puede inferir de manera sen-


cilla una descripcin cualitativa del movimiento de una partcula atendiendo a los puntos de
retroceso. Denotemos por 1 2 a los puntos de retroceso ordenados de menor a mayor
correspondientes al valor de . Entonces:
a) Si no existen puntos de retroceso (i.e. = 0), el movimiento de la partcula ser no
acotado. Si 1 0 entonces lim () = + y si 1 0 entonces lim () = .
Esto es, la partcula escapa.
b) Si existen puntos de retroceso pero 1 es mayor o menor que todos ellos, el movimiento ser
semiacotado. En el primer caso, lim () = + y en el seguno lim () = .
Dependiendo del signo de 1 la partcula escapar directamente o cambiar previamente
el signo de su velocidad tras alcanzar el punto de retroceso ms cercano a 1 .
c) Si existen dos o ms puntos de retroceso y 1 est entre dos de ellos ( 1 +1 ) el
movimiento es acotado y peridico. La partcula se mover constantemente entre y
+1 cambiando el signo de su velocidad al alcanzar estos puntos de retroceso.

Ilustremos todo esto con un caso cannico:

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).

You might also like