5
Resolviendo sistemas grandes de ecuaciones lineales con la calculadora gr´ afica casio fx-cg20 * Pablo Guerrero Garc´ ıa e-mail: [email protected] Departamento de Matem´atica Aplicada, Universidad de M´alaga ComplejoTecnol´ogico,ETSITelecomunicaci´on Campus de Teatinos s/n, 29010 M´ alaga (Espa˜ na) 31 de marzo de 2012 Resumen En este art´ ıculo se trata de ilustrar c´ omo podemos resolver sistemas grandes de ecuaciones lineales con la calculadora gr´ afica casio fx-cg20 (CG20). Se utiliza para ello el mismo ejemplo que se us´ o en [5, 6] para poner de manifiesto un fallo en la programaci´ on de la forma escalonada reducida por filas (en ingl´ es, reduced row echelon form (rref)) para la calculadora CAS casio ClassPad 330 (CP330), y se muestra la gran mejora que en el comportamiento num´ erico de la rref se ha producido en la CG20 con respecto al de la CP330, junto con otras caracter´ ısticas de la CG20 necesarias para poder reproducir esta experiencia. Palabras clave: ´ algebra lineal; sistema de ecuaciones lineales; m´ etodo directo; forma escalonada reducida por filas; calculadora; casio fx-cg20; t´ ecnicas para el aula. odigos MSC 2000: primario 97U70; secundarios 97D40, 65C20. 1. Introducci´ on Es bien sabido [1, §6.3] que, a la hora de resolver un sistema de ecuaciones lineales Ay = c con A R n×n regular y c R n , no es num´ ericamente una buena forma de proceder primero calcular A -1 para luego premultiplicar c. As´ ı pues, se suele recurrir a t´ ecnicas directas como la eliminaci´ on gaussiana para obtener la soluci´ on del sistema. En una de sus variantes se calcula la forma escalonada reducida por filas (en ingl´ es, reduced row echelon form (rref)) de la matriz ampliada para despu´ es obtener la soluci´ on en la columna m´ as a la derecha sin necesidad de sustituci´ on alguna. Dicha forma de proceder es un m´ etodo num´ ericamente estable (con respecto al crecimiento de los errores de redondeo) si la matriz A de coeficientes del sistema es de cierto tipo; e.g. lo es (cf. [1, §6.6]) para los que A es estrictamente diagonal dominante y para los que A es sim´ etrica definida positiva. En este art´ ıculo analizamos el comportamiento num´ erico de la implementaci´ on de rref en la calculadora gr´ afica casio fx-cg20 (CG20) con un sistema de ecuaciones lineales que ya pon´ ıa en aprietos a la de rref en la calculadora CAS casio ClassPad 330 (CP330). Aunque alg´ un lector pueda ya estar al corriente de dicho fallo, para aqu´ ellos que no lo est´ en y para describirlo de manera sencilla se trata de resolver el sistema de ecuaciones lineales (sin dificultades num´ ericas subyacentes, i.e., bien condicionado y con matriz de coeficientes sim´ etrica definida positiva y estrictamente diagonal dominante) en el que a ij = 2+9h 2 , si i = j -1, si |i - j | =1´ o(i =1y j = no(i = n y j = 1) 0, en otro caso , c i = 12h 2 sin(t i ), i, j 1: n, * Inf. T´ ecnico MA-12/02 (http://www.matap.uma.es/investigacion/tr.html), Dept. Matem´ atica Aplicada, Univ. M´ alaga, 31 de marzo de 2012. Este trabajo ha sido aceptado para su publicaci´ on online en un monogr´ afico que Aula Casio (http://www.aulacasio.com) dedicar´ a a la calculadora gr´ afica casio fx-cg20. agina 1 de 5

Resolviendo sistemas grandes de ecuaciones lineales con la ... · gr a ca casio fx-cg20 (CG20) con un sistema de ecuaciones lineales que ya pon a en aprietos a la de rref en la calculadora

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Resolviendo sistemas grandes de ecuaciones lineales con la ... · gr a ca casio fx-cg20 (CG20) con un sistema de ecuaciones lineales que ya pon a en aprietos a la de rref en la calculadora

Resolviendo sistemas grandes de ecuaciones lineales

con la calculadora grafica casio fx-cg20*

Pablo Guerrero Garcıae-mail: [email protected]

Departamento de Matematica Aplicada, Universidad de MalagaComplejo Tecnologico, ETSI Telecomunicacion

Campus de Teatinos s/n, 29010 Malaga (Espana)

31 de marzo de 2012

Resumen

En este artıculo se trata de ilustrar como podemos resolver sistemas grandes de ecuaciones lineales conla calculadora grafica casio fx-cg20 (CG20). Se utiliza para ello el mismo ejemplo que se uso en [5, 6]para poner de manifiesto un fallo en la programacion de la forma escalonada reducida por filas (en ingles,reduced row echelon form (rref)) para la calculadora CAS casio ClassPad 330 (CP330), y se muestra lagran mejora que en el comportamiento numerico de la rref se ha producido en la CG20 con respecto al dela CP330, junto con otras caracterısticas de la CG20 necesarias para poder reproducir esta experiencia.

Palabras clave: algebra lineal; sistema de ecuaciones lineales; metodo directo; forma escalonada reducidapor filas; calculadora; casio fx-cg20; tecnicas para el aula.

Codigos MSC 2000: primario 97U70; secundarios 97D40, 65C20.

1. Introduccion

Es bien sabido [1, §6.3] que, a la hora de resolver un sistema de ecuaciones lineales Ay = c con A ∈ Rn×n

regular y c ∈ Rn, no es numericamente una buena forma de proceder primero calcular A−1 para luegopremultiplicar c. Ası pues, se suele recurrir a tecnicas directas como la eliminacion gaussiana para obtenerla solucion del sistema. En una de sus variantes se calcula la forma escalonada reducida por filas (en ingles,reduced row echelon form (rref)) de la matriz ampliada para despues obtener la solucion en la columna masa la derecha sin necesidad de sustitucion alguna. Dicha forma de proceder es un metodo numericamenteestable (con respecto al crecimiento de los errores de redondeo) si la matriz A de coeficientes del sistema esde cierto tipo; e.g. lo es (cf. [1, §6.6]) para los que A es estrictamente diagonal dominante y para los que Aes simetrica definida positiva.

En este artıculo analizamos el comportamiento numerico de la implementacion de rref en la calculadoragrafica casio fx-cg20 (CG20) con un sistema de ecuaciones lineales que ya ponıa en aprietos a la de rrefen la calculadora CAS casio ClassPad 330 (CP330). Aunque algun lector pueda ya estar al corrientede dicho fallo, para aquellos que no lo esten y para describirlo de manera sencilla se trata de resolver elsistema de ecuaciones lineales (sin dificultades numericas subyacentes, i.e., bien condicionado y con matrizde coeficientes simetrica definida positiva y estrictamente diagonal dominante) en el que

aij =

2 + 9h2, si i = j−1, si |i− j| = 1 o (i = 1 y j = n) o (i = n y j = 1)0, en otro caso

, ci = 12h2 sin(ti), ∀i, j ∈ 1:n,

*Inf. Tecnico MA-12/02 (http://www.matap.uma.es/investigacion/tr.html), Dept. Matematica Aplicada, Univ. Malaga,31 de marzo de 2012. Este trabajo ha sido aceptado para su publicacion online en un monografico que Aula Casio(http://www.aulacasio.com) dedicara a la calculadora grafica casio fx-cg20.

Pagina 1 de 5

Page 2: Resolviendo sistemas grandes de ecuaciones lineales con la ... · gr a ca casio fx-cg20 (CG20) con un sistema de ecuaciones lineales que ya pon a en aprietos a la de rref en la calculadora

Pablo Guerrero Garcıa Sistemas grandes de ecuaciones lineales con la CG20 Pagina 2 de 5

donde n ∈ N+ es un valor prefijado, h = 2π/n y ti = ih. El lector interesado puede consultar en [5, 6]el problema diferencial del que surge dicho sistema de ecuaciones lineales, ası como el resto de detallesnumericos sobre el comportamiento de rref en la CP330.

Ademas de poner de manifiesto la gran mejora que en el comportamiento numerico de la rref se haproducido en la CG20 con respecto al de la CP330, aprovecharemos para ilustrar el manejo integrado delistas, matrices, graficas y programacion en la CG20, ası como el reseteado de la memoria principal, laexportacion/importacion de programas como ficheros de texto y la comprobacion de la version del OSutilizada. Para ello, se va a detallar paso a paso el manejo de la CG20 para ejecutar dicho ejemplo, y a modode apendice se proporcionan treinta y seis capturas de pantalla para facilitar al lector el procedimiento aseguir para que pueda reproducir la experiencia aquı descrita, en la que se trata de responder a la preguntanatural sobre cual es el maximo valor de n que la CG20 puede soportar.

2. Procedimiento

Desde el Main Menu accedemos primero al modoG:System, luego pulsando F5:Reset, F2:Main Memory yF1:Yes reseteamos la memoria principal para que los posi-bles valores almacenados previamente no hagan disminuir lacapacidad de almacenamiento disponible para esta experi-encia. Ahora volvemos al Main Menu y accedemos al modoB:Program (donde no habra ahora ningun programa) y pul-sando F3:New podremos teclear el nombre (e.g., TOMASNXN) aasignarle al programa que vamos a teclear y que mostramosen la columna de la derecha.

Tras unos comentarios iniciales, el programa procede aborrar los textos, graficos, listas y matrices existentes (parano interferir de una ejecucion a otra), pide el valor de n alusuario y calcula h. A continuacion inicializa la matriz A ymediante el comando Seq calcula los valores ci, que quedanalmacenados en una lista para despues con List->Mat con-vertirlos a una matriz con una sola columna. El doble bucleFor anidado inicializa los aij para despues hacer lo propiocon los elementos de las esquinas inferior izquierda y supe-rior derecha de A. Ahora solo falta construir dos listas, laprimera de las cuales con los ti y la segunda con los yi quese obtienen tras usar Rref de Augment y quedarse con lacolumna de mas a la derecha usando Mat->List. Ambas lis-tas se combinan usando List->Mat en una sola matriz dedos columnas para visualizar el resultado del computo, peroambas interesa que queden disponibles para poder represen-tar graficamente el resultado (una vez acabado el computo ypulsado Exe, y aprovechando la gestion integrada que de loselementos de datos hace la CG20) accediendo a traves delMain Menu al modo 2:Statistics y pulsando F1:Graph,F6:Set, F2:xyline en Graph Type, Exit y F1:Graph.

Por ultimo, para comprobar que version del OS esta-mos ejecutando, volvemos al Main Menu y accedemos nue-vamente al modo G:System para pulsar F4:Version.

’ProgramMode:RUN

’THOMASNXN RREF BUG

[email protected]

’13//12//2011 MANAGER+

’FX-CG10//20 V1.02.02

’N_<=_44 OK, BUT

’N_>=_45 MEMORY ERROR

’-------------------

ClrText

ClrGraph

ClrList

ClrMat

"N"?->N

2pi/N->H

{N,N}->Dim Mat A

Seq(12H^<2>sin (IH),I,1,N,1)->List 1

List->Mat(List 1)->Mat C

For 1->I To N

For 1->J To N

If I=J

Then 2+9H^<2>->Mat A[I,J]

Else

If Abs (I-J)=1

Then -1->Mat A[I,J]

IfEnd

IfEnd

Next

Next

-1->Mat A[N,1]

-1->Mat A[1,N]

Seq(IH,I,1,N,1)->List 1

Rref Augment(Mat A,Mat C)

Mat->List(Mat Ans,N+1)->List 2

List->Mat(List 1,List 2)Disps

Antes de proceder a ejecutar el programa es conveniente pulsar F6 y luego F3:Save-as para obtener elfichero TOMASNXN.txt. Dicho fichero sigue los convenios indicados en [2, §8.8] y puede servir para incorporarloa otra CG20 fısica conectandola via USB a un PC como si de un pendrive se tratara, es decir, accedemos ala carpeta @MainMem/Program de la unidad asignada a la CG20 y copiamos (o salvamos) allı (o desde allı)el fichero en cuestion, tal y como se describe en [2, §13.1]. De esta manera, el lector puede experimentar conel programa facilitado sin ni siquiera tener que teclearlo.

Page 3: Resolviendo sistemas grandes de ecuaciones lineales con la ... · gr a ca casio fx-cg20 (CG20) con un sistema de ecuaciones lineales que ya pon a en aprietos a la de rref en la calculadora

Pablo Guerrero Garcıa Sistemas grandes de ecuaciones lineales con la CG20 Pagina 3 de 5

Figura 1: Tiempo de ejecucion en segundos en funcion de n para la CG20 fısica

Si lo que vamos a manejar es el emulador fx-CG10/20 Manager PLUS [3] de la CG20, la carga delprograma en el mismo tambien es tarea sencilla. Desde el Main Menu se accede al modo F:Memory y sepulsa F3, F1, se busca el fichero TXT en el PC y F1. Despues volvemos al Main Menu para acceder al modoB:Program y se pulsa F6, F4, F1 y Exit, con lo que ya podremos ejecutar el programa con F1.

3. Resultados

Para cada valor de n ≥ 10 hemos ido cronometrando el tiempo en segundos que tardaba la CG20 fısicaen mostrarnos la solucion, pero cuando hemos probado el valor n = 45 se obtiene el mensaje “MemoryERROR” a los 33 segundos, posicionandose el cursor tras el comando Rref al pulsar Exit (si el error seobtiene para n = 44 basta volverlo a ejecutar tras entrar y salir al y del modo 2:Statistics). Los tiemposde computo obtenidos se muestran en la variable runtimesec de la siguiente receta Matlab v6.1:

dimensions = 10:44;

runtimesec = [ 3.94 5.12 6.75 8.59 10.84 13.62 16.97 20.85 25.34 30.53 ...

36.62 43.68 51.78 60.75 71.06 82.56 95.40 109.84 125.75 143.31 ...

162.87 184.41 207.59 233.28 261.43 291.91 325.07 360.84 399.53 441.66 ...

486.47 534.78 587.19 642.01 702.28];

format compact; format long; phi = polyfit(dimensions,runtimesec,3); phi

format rat; phi = [0.01868 -0.6757 10.78 -57.56], format long;

phi, 1-(std(runtimesec-polyval(phi,dimensions),1)/std(runtimesec,1))^2

plot(dimensions,runtimesec,’o’); hold on; grid

plot(dimensions,polyval(phi,dimensions),’r-’); xlabel(’dimension (n)’);

ylabel(’tiempo ejecucion (segs) CG20 fisica’); hold off;

Con dicha receta Matlab v6.1 (que denominaremos TomasnxnCG20runtimes) se pretende ajustar de formamınimo-cuadratica un polinomio de grado 3 a dichos tiempos de computo (cf. Fig. 1), con objeto de teneruna estimacion de cuantos segundos puede tardar la CG20 fısica para un cierto valor de n. Dicho polinomioha resultado ser, con practicamente 1 como coeficiente de determinacion R2 del ajuste no lineal y con cuatrodıgitos significativos redondeados correctos a la hora de facilitar sus coeficientes,

ϕ(n) ≈ 467

25000n3 − 748

1107n2 +

539

50n− 1439

25= 0.01868n3 − 0.6757n2 + 10.78n− 57.56,

como queda de manifiesto en la siguiente salida obtenida:

Page 4: Resolviendo sistemas grandes de ecuaciones lineales con la ... · gr a ca casio fx-cg20 (CG20) con un sistema de ecuaciones lineales que ya pon a en aprietos a la de rref en la calculadora

Pablo Guerrero Garcıa Sistemas grandes de ecuaciones lineales con la CG20 Pagina 4 de 5

>> TomasnxnCG20runtimes

phi =

0.01867688632201 -0.67568837611990 10.77678629491007 -57.55549196122871

phi =

467/25000 -748/1107 539/50 -1439/25

phi =

0.01868000000000 -0.67570000000000 10.78000000000000 -57.56000000000000

ans =

0.99996661271554

Una vez que hemos actualizado la CG20 fısica para el OS v1.03.02 (siguiendo las instrucciones facilitadasen [4] pero ademas teniendo en cuenta que con la calculadora apagada debe conectarse primero el terminalUSB al PC y luego el terminal USB a la CG20 fısica pues si no se procede ası se obtiene un fallo durante elprocedimiento de actualizacion), hemos repetido la experiencia y hemos obtenido practicamente los mismostiempos de computo.

Merece la pena resaltar que el emulador fx-CG10/20 Manager PLUS [3] de la CG20, tanto en su v1.00para el OS v1.02.02 como en su v1.01 para el OS v1.03.02, funciona exactamente igual que la calculadora fısica(obviamente con tiempos de computo mucho menores) en el sentido de que tambien finaliza correctamenteel calculo para n ≤ 44. Esto no ocurrıa en la CP330, pues su emulador tanto para la v3.04.5 (May 2010)como para la v3.05 (Dec 2010) como para la actual v3.06.1 (Nov 2011) del OS seguıa dando “Overflow”como mensaje de error para n ≥ 8 a pesar de que la CP330 fısica daba “Insufficient Memory” como mensajede error para n ≥ 27 (e incoherencias numericas para 20 ≤ n ≤ 26) con la v3.04.5 y para n ≥ 34 tanto parala v3.05 como para la actual v3.06.1 del OS.

Por ultimo, dejaremos como ejercicio para el lector interesado determinar cual es el maximo valor den que la CG20 fısica con OS v1.04.02 (que casio acaba de proporcionar a mediados de este mes) puedesoportar, y comprobar si su correspondiente emulador (que casio aun no ha proporcionado pero que seespera no tarde mucho en hacerlo) sigue funcionando exactamente igual que la calculadora fısica.

Agradecimientos

Este trabajo ha sido parcialmente financiado dentro del marco del Proyecto de Investigacion de Excelenciade la Junta de Andalucıa (Espana) cuya referencia es P10-TIC-06083.

Referencias

[1] Richard L. Burden and J. Douglas Faires. Numerical Analysis, 8th edition. International ThomsonPublishing, Belmont (CA, USA), 2005.

[2] CASIO. fx-CG10/20 Software User’s Guide. Casio, Aug 2010 (v1.02.02), Oct 2011 (v1.03.02) and Mar2012 (v1.04.02).

[3] CASIO. fx-CG10/20 Manager PLUS User’s Guide. Casio, Sep 2010 (v1.00) and Nov 2011 (v1.01).

[4] CASIO. OS Update Application User’s Guide for fx-CG Series. Casio, Oct 2011 (v1.03.02) and Mar2012 (v1.04.02).

[5] Pablo Guerrero-Garcıa. A bug in my hand-held CAS calculator (and a bag of solvers). Pro-ceedings of the APLIMAT 2011 Conference (ISBN 9788089313518), pp. 1339–1349, Feb 2011,http://archiv.aplimat.com/2011/Proceedings/New trends in education/Guerrero-Garcia.pdf

[6] Pablo Guerrero-Garcıa. A bug in my hand-held CAS calculator (and a bag of solvers). Aplimat-Journalof Applied Mathematics (ISSN 1337-6365, Bratislava (Eslovaquia)), Vol. 4, No. 1, pp. 357–367, Dec 2011,http://www.journal.aplimat.com/volume 4 2011/Journal volume 4/Number 1/Guerrero-Garcia.pdf

Apendice

En la siguiente pagina se proporcionan treinta y seis capturas de pantalla para facilitar al lector elprocedimiento a seguir para que pueda reproducir la experiencia aquı descrita.

Page 5: Resolviendo sistemas grandes de ecuaciones lineales con la ... · gr a ca casio fx-cg20 (CG20) con un sistema de ecuaciones lineales que ya pon a en aprietos a la de rref en la calculadora

Pablo Guerrero García Sistemas grandes de ecuaciones lineales con la CG20 Página 5 de 5