Está en la página 1de 10

SOLVESYS 49 versin 1.

2
Numricos y ecuaciones no lineales de mnimos cuadrados Solver
de la calculadora HP49G
Derechos de autor 1994-2000, Sune Bredahl

Manual del usuario (revisin: julio de 2000)


Descargo de responsabilidad
general
Qu es SOLVESYS?
instalacin
Ejemplos
de error Tolerancias
mensajes terminacin
Cmo llegar al Autor

RENUNCIA
SOLVESYS.LIB y este manual SE PRESENTAN SIN GARANTA, EXPRESA O
IMPLCITA. EL AUTOR NO GARANTIZA EN CUANTO A LA IDONEIDAD DE ESTE
PROGRAMA.
SOLVESYS.LIB PUEDE ser copiado libremente, pero no pueden ser utilizados con fines
comerciales sin el permiso del autor.

RESUMEN
Esta documentacin incluye SOLVESYS 1.2 para la HP49G. ltima versin del software se
puede descargar desde http://solvesys.cjb.net . Tambin un FAQ disponible a partir de aqu, si
usted tiene alguna pregunta no cubiertas en este manual.

SOLVESYS 49 requiere una HP49G con ROM 1.10 o superior. No va a funcionar correctamente
con la ROM 1.05 enviado en las primeras versiones de la calculadora.

INSTALACIN
SOLVESYS es una biblioteca y debe ser instalado correctamente para poder trabajar Consulte la
Gua del usuario avanzado (seccin 11.6) para ms detalles sobre esto. Sin embargo, suponiendo
que el modo de RPN, debera hacer lo siguiente:
1. Transferencia SOLVESYS.LIB a la HP49G - el uso de transferencia binaria.
2. Recordemos que la biblioteca de la pila y pulse n [STO] , donde n es el puerto deseado (0,
1 2). Despus de almacenar la biblioteca, puede eliminar la copia original para ahorrar
memoria.
3. Pulse la tecla [ON] + [C] para reiniciar la HP49G. Esto completa la instalacin.
Para verificar que esta biblioteca se ha instalado correctamente, presione [CAT], encontrar el
comando ABOUTSS y pulse [ENTER]. El nmero de la versin debe ser "SOLVESYS 49 1.2" (la
versin actual es 17/07/00).
SOLVESYS ahora se puede iniciar de varias maneras, por ejemplo:
Mediante el men NUM.SLV (1,2 SOLVESYS aparece como el ltimo punto)
Utilizando CAT (comando aparece como SOLVESYS ).
Para eliminar la biblioteca SOLVESYS, haga lo siguiente:
1. Iniciar el Administrador de Archivos
2. Seleccione el puerto (0, 1 2), donde se ha instalado SOLVESYS y pulse [OK]
3. Pulse [NXT] y [PURGA].
Si la calculadora devuelve un "objeto en el uso de" error en este punto, presione [ON] + [C] y
repita los pasos anteriores.
Para transferir SOLVESYS.LIB a otra HP49G.:
1. Poner el ID de la biblioteca ( n: 1550 ) en la pila y pulse [RCL] .
2. Tienda de la biblioteca devuelto en una variable
3. La transferencia de esta variable en la calculadora otros. - El uso de transferencia binaria.

QU ES SOLVESYS?
SOLVESYS 49 es un medio para resolver sistemas de ecuaciones lineales y no lineales. Tambin
es capaz de hacer mnimos cuadrados no lineal de minimizacin.

Para ser ms precisos, SOLVESYS est diseado para cero o mnimos cuadrados minimizar m
ecuaciones lineales y no lineales en n unknowns.When m = n , el problema es, obviamente, para
encontrar una solucin que satisfaga todas las ecuaciones. Si m > n , las ecuaciones son
generalmente inconsistente bsquedas as que en vez SOLVESYS una solucin de mnimos
cuadrados, es decir, el minimizador de la suma de los residuos de la ecuacin al cuadrado.
Minimizacin de mnimos cuadrados se usa comnmente en aplicaciones datafitting. El caso n > m
es tal vez de menor inters, pero tambin es manejado por SOLVESYS.
Tenga en cuenta que SOLVESYS es un solucionador numrico - que tratar de resolver las
ecuaciones usando mtodos iterativos, es decir, que el usuario proporcione alguna conjetura inicial
o una estimacin de la solucin que el solucionador (con suerte) se puede utilizar para encontrar la
verdadera solucin. Puede ser necesario probar diferentes conjeturas antes de comenzar el
solucionador de xito en esta bsqueda, pero si bien los valores de partida son siempre, las
ecuaciones a menudo se puede resolver con slo unas pocas iteraciones.
SOLVESYS no permite que las unidades en las ecuaciones o variables (muy lento), tambin no se
puede utilizar para resolver sistemas con funciones discretas o variables.
El motor solucionador se basa en un (Gauss) el mtodo de Newton con un procedimiento mixto
linesearch cuadrticas y cbicas. Para ms detalles sobre este algoritmo, vea Dennis y Schnabel [1]
o Press et al. [2].
[1] Dennis, JE, y Schnabel, RB 1983, Mtodos Numricos para la optimizacin sin
restricciones y ecuaciones no lineales (Englewood Cliffs, NJ: Prentice-Hall).
[2] Press, WH et al. 1992, Numerical Recipes in C: El arte de la Computacin Cientfica . 2
ed. (Cambridge: University Press).

EJEMPLOS
En lugar de describir cada pantalla y el men en SOLVESYS 49, voy a dar algunos ejemplos en su
lugar.
El uso bsico se describe en el primer ejemplo lo tiene que iniciar de aqu a pesar de que pueden
no estar interesados
en la solucin de ecuaciones lineales.
Ejemplo 1: Resolver un sistema de ecuaciones lineales
A pesar de la HP49G ya tiene funciones incorporadas para resolver sistemas de ecuaciones
lineales (como LINSOLVE), puede que le resulte cmodo de usar SOLVESYS lugar. Por lo
menos este pequeo ejemplo te dar una idea de cmo utilizar SOLVESYS.
El sistema que queremos resolver es:
1. 2 x + y = 3 x + z
2. z + x = 2 ( x + y )

3. ( z + x ) / 2 + y + 1,2 = 0
Hay varias formas de iniciar SOLVESYS. La forma ms rpida es abrir el NUM.SLV elija el
men y seleccionar SOLVESYS 1.2 desde aqu.
El SOLVESYS primero que muestra, es una lista de ecuaciones a resolver. Esto es en realidad el
contenido de la variable 'EQ' por lo que si no hay 'EQ' variable en el directorio actual se muestra
una lista vaca. Por ejemplo, si las ecuaciones anteriores se almacenan en una lista de 'EQ' antes de
SOLVESYS de partida, la pantalla de inicio debe ser algo como esto:

Si no ha almacenado las ecuaciones en 'EQ', utilice [AGREGAR] para entrar en las ecuaciones.
La marca de verificacin indica que la ecuacin est marcado para resolver (por defecto). Si hay
ecuaciones que no quieren resolver, utilice la tecla [+/-] para desmarcar ellos - esto tiene el mismo
efecto que [DEL], pero no elimina la ecuacin de 'EQ'.
A continuacin, pulse [OK] para continuar. SOLVESYS analiza las ecuaciones para las variables y
se abre la "Variables" pantalla que se muestra a continuacin.

Puede modificar un valor resaltado usando el botn [EDIT] menukey o [ENTER]. Para comprobar
/ desmarque una variable, utilice la tecla [+/-]. La tecla [RESET] establece todas las variables
iguales a 1.
Las variables facturado ser resuelto por (por defecto). Un real o complejo adivinar valor de
partida debe ser siempre. Esta debe ser su mejor estimacin de la solucin que est
buscando - no use los valores por defecto si usted sabe mejor.
Las variables no se resuelven sin control y el valor permanece constante durante el proceso
de resolucin. De hecho, el valor no tiene por qu ser un nmero real o complejo, sin
embargo, las ecuaciones de tiempo se debe evaluar como un nmero.
En este ejemplo, queremos resolver de todas las variables para que todos deben ser revisados.
Los valores iniciales son importantes porque las ecuaciones son lineales. Si utilizamos los valores

por defecto, como se muestra y pulse [SOLVE] se obtiene la pantalla siguiente:

Aqu "cero" indica que una solucin se ha encontrado. Cuando regres a las "variables" de pantalla,
los valores finales se muestran.
Como puede ver, la solucin es (x, y, z) = (0,4, -0,8, -1,2). Al salir de SOLVESYS, estos valores
se almacenan en sus respectivas variables. Sin embargo, usted tambin puede usar [-> STK] para
copiar esta solucin (as como un vector de error) en la pila
Ejemplo 2: Resolver un sistema de ecuaciones no lineales.
En este ejemplo vamos a resolver un sistema ms grande (la combustin del propano?) Que es una
mezcla de 11 ecuaciones lineales y no lineales en 11 incgnitas ( x 1 ,..., x 11 ) y siete variables
conocidas (a 1 , ... , un 6 y R).
x 1+x 4=3
2 x 1 + x 2 + x 4 + x 7 + x 8 + x 9 + 2 x 10 = 10 + r x
2 + 2 x 5 + x 6 + x 7 = 8 2 x 3 + x 5 = 4r x 1 x 5 = a 1
x 2 x 4 x 6 x 2 = a 2 ( x 2 x 4 x 11 ) x 7 x 4 = a 3 (
un 1 = 0,193
x 1 x 4 x 11 ) y medio x 8 x 4 = a 4 x 2 x 11 x 9 x 4 = a 5
un 2 = 0,002597
x 1 ( x 3 x 11 ) x 10 x 4 2 = a 6 x 4 2 x 11 x 11 = x 1 +
un 3 = 0.003448
x 2 + x 3 + x 4 + x 5 + x 6 + x 7 + x 8 + x 9 + x 10
un 4 = 0,00001799
un 5 = 0,0002155
un 6 = 0,00003846
r = 4.056734

En SOLVESYS, este conjunto de ecuaciones se ver as:

Todas las ecuaciones deben ser incluidos (comprobado). Pulse [OK] para abrir las "variables" de
la pantalla:

Recuerde que los primeros siete valores aqu son constantes. Estas deben ser sin control y
rellenado con sus valores correspondientes se mostraron anteriormente. De las incgnitas que se
utilice 1 como el valor inicial, excepto x 11 nos pusimos a 10 desde x 11 es la suma de las otras
variables (ecuacin 11).
Cuando haya terminado, la pantalla, entonces debe tener un aspecto como el siguiente. Use la tecla
de abajo para ver / editar el resto de variables.

[Nota: Para comprobar que usted tiene la cantidad correcta de incgnitas, presione [INFO]
menukey. Esto debera mostrar "m / n = 11/11", que significa que el 11 ecuaciones y variables de
11 han sido seleccionados para ser resuelto]
Cuando termine, pulse [SOLVE] y despus de unos minutos en una solucin (cero) se encuentra:

Los valores finales se pueden ver mediante las teclas de arriba / flecha abajo. [-> STK] se puede
utilizar para copiar el resultado y la ecuacin de los residuos de la pila (hacer esto!). Tenga en
cuenta que los valores se almacenan en las variables despus de salir de SOLVESYS.
Ejemplo 3: no lineal de mnimos cuadrados
Si hay ms ecuaciones (generalmente inconsistente) que incgnitas, SOLVESYS va a buscar una
"mejor ajuste" solucin en el sentido de mnimos cuadrados, es decir. una solucin que minimiza la
suma de las desviaciones de las ecuaciones al cuadrado.
Una aplicacin comn de mnimos cuadrados es la minimizacin de datafitting, donde se est
tratando de encajar m observaciones a una expresin de n parmetros desconocidos para los que
el "mejor ajuste" los valores son obligatorios. Si cada observacin se inserta en la expresin, el
resultado es un sistema de m "observacional" ecuaciones en n incgnitas.
He aqu un ejemplo.
La relacin entre la presin medida y la temperatura de vapor saturado se puede escribir como
Y = un * ALOG ( b * T / ( c + T))
donde Y es la presin medida del vapor de agua a los distintos valores de temperatura controlable
T uno , b y c son parmetros desconocidos (que se calcula)
Los siguientes datos fueron recogidos.
T 0 10 20
30
40 50 60
70
80
85
90
95
100 105
Y 4.14 8.52 16.31 32.18 64.62 98.76 151,13 224,74 341,35 423,36 522,78 674,32 782,04 920,01
Para crear las 14 ecuaciones es necesario, realizar los siguientes pasos:
1.
2.
3.
4.

Almacenar los datos como las listas de variables tales como la 'T' y 'Y' .
Si ninguna de las variables A, B o C existen, deben ser purgados.
Escriba "Y = A * ALOG (B * T / (C AADIR T))" en la pila y pulse [IC]
Ya est! Guarde la lista de resultados de las ecuaciones en el 'EQ' variable.

[IMPORTANTE: En el paso 3. debe reemplazar cualquier aparicin de "+" con "ADD" o "-".
puesto que "+" tiene una accin diferente cuando se trata lista]
En cuanto a las estimaciones iniciales, tenga en cuenta que la primera ecuacin es en realidad un
4,14 = por lo que este puede ser utilizado como una conjetura. Si A = 4,14 se inserta en los
prximos dos ecuaciones, estos se pueden reducir a dos ecuaciones lineales con la solucin (b, c)
= (5.93,179). Por lo tanto una estimacin inicial podra ser (a, b, c) = (4,6,180).
Ahora estamos listos para empezar a SOLVESYS. Las ecuaciones que ya estn creados para
pulsar la tecla [OK] y complete los valores de adivinar (a, b, c) = (4, 6, 180)

Pulse [SOLVE] y responder "s" a aceptar que m es diferente de n (ya que tenemos ms
ecuaciones que incgnitas). Despus de unas pocas iteraciones de una solucin (como mnimo) se
encuentra.

Con 3 cifras significativas, la funcin de mejor ajuste es y (t) = 5.27 * ALOG [8.56 * T / (295 +
T)].
Tenga en cuenta que no hay una forma sencilla de distinguir entre un mnimo local o global, lo que la
eleccin de los valores de partida es muy importante. Una buena aproximacin inicial no es slo un
gran ahorro de tiempo, sino que tambin recoger el derecho (global) como mnimo para usted!

Tolerancias de error
Es posible modificar los lmites de error utilizado para las pruebas de convergencia, aunque no se
recomienda. Utilice [LOL] para cambiar las tolerancias de error de la describen a continuacin.
XTOL
La tolerancia de la convergencia de las iteraciones. Esta es la diferencia relativa entre las dos

ltimas soluciones calculadas. Un valor de 10 - p por lo general corresponde a p dgitos


significativos del resultado calculado, pero los valores por debajo de 10 -6 pueden no cumplir con
esto. El valor por defecto es 10 -3 correspondiente a tres dgitos significativos. XTOL es el
"principal" de prueba en el sentido de que EQTOL o LSQTOL no se ponen a prueba si XTOL
falla. Sin embargo, por varias razones, XTOL se ignora si los valores de la ecuacin es
exactamente cero (esto obliga a un "cero" del mensaje).
EQTOL
Test para comprobar si las ecuaciones se han puesto a cero (en caso de ser nombrado ZEROTOL
?). La prueba calcula el RMS (media cuadrtica) error de las ecuaciones. Por ejemplo, para el
sistema
{xy = 9, x + y = 6} el error rms a (x, y) = (2.9,3.1) es [(8,99-9) 2 + (6-6) 2] = 0,01. EQTOL
por defecto a 10 -5 , que debe ser suficiente para la mayora.
LSQTOL
Esta prueba se utiliza slo si m > n , es decir. por mnimos cuadrados no lineal problemas. Es una
prueba de coseno de Dennis y Schnabel [1] (una especie de prueba de gradiente normalizado). La
prueba devuelve valores entre 0 y 1, donde un valor cercano a 0 indica un minimizador de mnimos
cuadrados. El valor por defecto es de 0,01 que debe ser suficiente teniendo en cuenta la XTOL
pre-requisito.
LSQTOL no se aplica a cero residual de mnimos cuadrados (ajuste exacto), sin embargo, el
EQTOL prueba devolver un "cero" mensaje en este caso.

TERMINACIN Y MENSAJES DE ERROR


Algn error (ms o menos) y mensajes comunes de terminacin devuelto por SOLVESYS se
enumeran a continuacin.
MENSAJES DE LA VUELTA SOLVER:
Cero:
Un resultado satisfactorio XTOL y EQ TOL se encontr ( XTOL se puede ignorar si se trata
de un cero exacto).
Mnimo:
Un resultado satisfactorio XTOL y LSQTOL fue encontrado. No se garantiza que sea un
mnimo global.
Supongo que mal (es):
El solucionador ha aterrizado en un punto que no parece ser la solucin. Reinicie el

solucionador con otras estimaciones iniciales.


Resultado indefinido:
(Con excepcin de Matemticas.) Clculo como 0 / 0 o se produjo el XROOT funcin se usa
con argumentos que no se puede dar un resultado con valores reales.
Resultados infinita:
(Con excepcin de Matemticas.) Clculo, tales como 1 / 0 se produjo. Intente cambiar las
suposiciones iniciales.
Los errores de inicializacin:
Constante?
Por lo menos una ecuacin no contiene incgnitas. SOLVESYS no permite las ecuaciones
redundantes. Si usted tiene las ecuaciones que no quieren resolver, simplemente desmarque
ellos.
Unidades incoherentes:
Las unidades no son compatibles.
Nombre indefinido:
Alguna expresin (s) incluye (s) de uno o ms nombres de variables SOLVESYS es incapaz
de identificar.

CMO LLEGAR AL AUTOR


No dude en ponerse en contacto conmigo si usted tiene cualquier comentario, pregunta, problema
o sugerencia. Adems, si usted encuentra algn error (o lo que usted piensa que es un error), por
favor notifique a m.
Compruebe http://solvesys.cjb.net para la ltima versin de SOLVESYS y un FAQ con respuestas
a las preguntas ms comunes.
Mi correo electrnico es sune@bredahl.net o sune_bredahl@hotmail.com y ICQ # 43726969.