Matemàtiques 0.1 fins l'infinit

Matemàtiques per a l'ensenyament secundari

El canvas del títol no funciona
Matemàtiques 0.1 fins l'infinit. Matemàtiques per a l'ensenyament secundari

Maxima amb wxMaxima (primera part)

Índex

Introducció

Tot el professorat, en major o menor mesura fa us de les tecnologies de la informació i la comunicació (TIC): des de la utilització de les calculadores, l’escriptura de les programacions didàctiques, dels controls i dels apunts amb editors de textos, fins la utilització de programari matemàtic a l’aula.

Cada vegada hi ha més programari adaptat a la docència, d’una qualitat extraordinària i especialment adaptats a la interacció amb l’alumnat. Hi ha un grup de programes anomenats sistemes de computació algebraica, amb les sigles “CAS” (Computer Algebra System) com “Mathematica”, “Derive”, “calculadora Wiris”, “GeoGebra”, “Maxima”, que possibiliten, tant el càlcul algebraic directe com la creació de noves utilitats, gràcies a la programació informàtica. Amb aquest llibre tenim la intenció d’aprofundir en la utilització de Maxima. Maxima és un sistema de càlcul que utilitzen altres programaris, nosaltres farem us de wxMaxima com a portal de comunicació entre l’usuari i Maxima.

“Maxima” i “wxMaxima” destaquen per ser programaris lliures, adaptats a molts sistemes operatius. Especialment s’aprecia el canvi de l’editor de línia per l’editor de pàgina de les últimes versions, facilitant extraordinàriament la programació informàtica i l’ús de sentencies més complexes, també s’ha de destacar la possibilitat de crear amb molta facilitat, documents instal·lables en el programari de “Maxima” per poder ampliar el potencial de càlcul, i sobre tot, adaptar-lo al nivell acadèmic del nostre alumnat i al nostre idioma.

Aquest manual de wxMaxima no intenta ser exhaustiu, simplement és una selecció de les instruccions que poden ser útils per a l’ensenyament secundari.

Instal·lació de wxMaxima en WINDOWS

wxMaxima és un programari que pot ser instal·lat en qualsevol sistema operatiu, ací teniu un exemple de la instal·lació en el sistema operatiu Windows.

Per començar vos heu d’adreçar a la pàgina principal de wxMaxima “http://andrejv.github.io/wxmaxima/download.html” per iniciar la instal·lació. Fixeu-vos en les imatges que tenen ressaltats els llocs on heu de clicar o seleccionar alguna opció.









Podeu crear un accés directe del programa en l’escriptori de Windows de la forma següent: Obriu la carpeta C:\maxima-5.38.1\wxMaxima, seleccioneu amb el botó dret del ratolí el programa wxmaxima.exe per a obrir el menú contextual, seleccioneu l’opció “Crea una drecera”. Apareix el document wxmaxima.exe – Drecera que podeu arrossegar a l’escriptori.

Primera lliçó

Ací estudiareu les característiques estructurals d’un document “wxMaxima”, com executar una sentència. També com heu de preparar el programari per adaptar-lo al vostre idioma, i la utilització dels paquets de funcions, anomenats macros.

Les cel·les de wxMaxima

En “wxMaxima” existeixen huit tipus de cel·les. Cinc que serveixen per estructurar el document: títol, secció, subsecció, subsubsecció i text, una de tipus imatge per afegir figures i dues que serveixen per escriure les d’ordres i presentar els resultats: “input” i “output”. També podem inserir en el document un salt de pàgina.

Aquestes cel·les s’activen amb el menú “Cel·la”, La cel·la de tipus “input” es genera automàticament en escriure i finalment la de tipus “output” quan es presenten resultats.

En les cel·les de tipus “input” pots escriure totes les sentències que desitges, separades pel signe “$” si no vols observar el resultat o pel signe “;” si vols observar-lo. Si al final no escrius un dels dos signes, el programari afegirà automàticament el signe “;”.

Per executar les sentències d’una cel·la, el cursor d’escriptura ha d’estar en la cel·la, i prémer les tecles “shift” més “enter”.

Observareu un segment horitzontal parpellejant en la zona de treball de wxMaxima que indica la posició d’inserció de la pròxima cel·la i pots modificar la seua posició amb el ratolí i les fletxes de desplaçament.

Activitat
· Obriu una sessió de wxMaxima.
· Realitzeu els exemples següents per a verificar els vostres coneixements.
· Guardeu el document en la vostra carpeta de treball. Els documents de wxMaxima els reconeixereu per les extensions “wxm” i “wxmx” que acompanyen al nom dels arxius. L’extensió “wxm” solament guarda les sentències escrites per l’usuari i l’extensió “wxmx” guarda també els resultats de les sentències.

Adaptació als idiomes

Moltes vegades es fa necessari anomenar els objectes matemàtics definits en wxMaxima i per això existeixen els identificadors. És possible crear noms en el nostre idioma per a les funcions definides per nosaltres i per les definides en Maxima.

Els identificadors definits per l’usuari no poden coincidir amb els existents en wxMaxima: “block”, “if”, “then”, “for”, “do”… ni amb els noms de les funcions predefinides: “solve”, “integrate”, “intersection”…

Un identificador pot estar format per qualsevol quantitat de caràcters, però el primer ha de ser necessàriament un caràcter no numèric.

Els caràcters no alfabètics han d’anar precedits per la barra invertida, però és possible declarar-los alfabètics i d’aquesta manera adaptar els identificadors al nostre idioma mitjançant la sentència declare( “áàéèíïóòúüÁÀÉÈÍÏÓÒÚÜçÇñÑ~´·¿?αβγδεζηθκλμξρστφϕχψω”, alphabetic) $.

És important no declarar amb la categoria “alphabetic” els caràcters que actuen com a operadors i d’aquesta manera evitar sorpreses. També s’ha de desactivar en el menú de preferències, l’ús del punt central com substitut de l’asterisc. Cada vegada que desitgeu utilitzar noms amb aquests caràcters, hauríeu d’executar aquesta sentència al començament de cada sessió de wxMaxima, però és possible escriure-la en el document anomenat maxima-init.mac i guardar-lo en la carpeta que indica la sentència file_search_maxima que en el exemple és “C:/maxima-5.38.1/share/maxima/5.38.1_5_gdf93b7b_dirty/share/“. Com wxMaxima no pot editar documents de tipus “mac” el guardareu també en el format “wxm” per poder ampliar en el futur aquest document amb altres sentències que s’executaran automàticament cada vegada que inicieu una sessió de wxMaxima.

Activitat
· Obriu una sessió de wxMaxima
· Escriu la sentència declare( “áàéèíïóòúüÁÀÉÈÍÏÓÒÚÜçÇñÑ~´·¿?αβγδεζηθκλμξρστφϕχψω”, alphabetic) $
· Guarda el document a la carpeta C:/maxima-5.38.1/share/maxima/5.38.1_5_gdf93b7b_dirty/share/ amb el nom maxima-init.wxm i amb el tipus de document “*.wxm”.
· Exporta el document a la mateixa carpeta, amb el nom maxima-init.mac i amb el tipus de document “*.mac”.
· Tanca la sessió de wxMaxima i la pròxima vegada que inicies la sessió podràs escriure identificadors amb paraules del nostre idioma.

La sentència d’assignació

La sentència d’assignació utilitza el caràcter “dos punts”, és de les més importants i permet associar un identificador amb un valor o expressió matemàtica.

Activitat

. Realitzeu l’exemple següent per a verificar l’ús de la sentència d’assignació i observeu la possibilitat d’utilitzar en wxMaxima paraules adequades per a la docència.

Maxima i wxMaxima en la WEB

En la WEB hi ha molts documents referents a Maxima i wxMaxima. Comencem per la pàgina principal “http://andrejv.github.io/wxmaxima/” on trobaràs la descàrrega dels documents d’instal·lació, tutorials entre els que destacaria els video-tutorials de Javier Aràstegui, “http://vimeo.com/maximajaj“.

És fonamental la pàgina principal de Maxima “http://maxima.sourceforge.net/” i la seua versió en castellà “http://maxima.sourceforge.net/es/” on trobaràs el manual de Maxima complet i molts tutorials en diversos idiomes.

Com els documents de wxMaxima tenen una extensió particular “wxm” i “wxmx” permet trobar-los amb facilitat en els buscadors d’Internet “http://www.google.es/search?q=filetype:wxm“, “http://www.google.es/search?q=filetype:wxmx“.

Tabé existeixen pàgines amb Maxima-online “http://maxima-online.org/“, “http://maxima.cesga.es/

Els paquets en wxMaxima

Els paquets són estructures d’informació, que poden ser tan simples com un document d’extensió “mac” fins a una carpeta farcida d’arxius. La finalitat dels paquets és proporcionar a Maxima una funcionalitat superior.

Hi ha molts paquets: “draw” que ens permet utilitzar des de wxMaxima el programari de Gnuplot per fer representacions gràfiques, “stringproc” per ampliar el tractament de cadenes de caràcters, també la lectura i escriptura d’arxius, “unit” que permet fer canvis d’unitats i anàlisis dimensional d’equacions, hi ha moltíssims paquets més, però la majoria no estan relacionats amb la programació de l’educació matemàtica de primària i de secundària.

Per aprendre la utilització i el potencial que proporcionen els paquets he preparat un paquet molt senzill anomenat “naturals” que podreu instal·lar.

Activitat (creació del paquet).
· Descarregueu l’arxiu naturals.zip i guardeu-lo en la vostra carpeta de treball.
· Descomprimiu l’arxiu naturals.zip per obtenir el document naturals.wxm.
· Obriu una sessió de wxMaxima amb el document naturals.wxm, podeu observar les funcions que inclou el paquet.
· Exporteu el document amb el nom naturals.mac seleccionant el tipus d’arxiu “*.mac” per a obtenir el paquet.
· Tanqueu la sessió de wxMaxima.
· Copieu el paquet de funcions naturals.mac en la carpeta indicada per la sentència file_search_maxima que com podeu observar en una activitat anterior és la carpeta “C:/maxima-5.38.1/share/maxima/5.38.1_5_gdf93b7b_dirty/share/
· Ja teniu el paquet instal·lat.

Ara podeu utilitzar el paquet de funcions.

Activitat (utilització del paquet).
· Obriu una sessió de wxMaxima.
· Executeu la sentència load(“naturals”)$ per activar les funcions definides en el paquet.

· La primera sentència set_random_state(make_random_state (true))$ activa el generador de nombres aleatoris utilitzats per algunes funcions del paquet.
· La segona sentència, declare( “áàéèíïóòúüÁÀÉÈÍÏÓÒÚÜçÇñÑ~´·¿?αβγδεζηθκλμξρστφϕχψω”, alphabetic) $, no seria necessària si forma part del paquet maxima-init.mac però no representa cap problema que estiga repetida.
· La sentència és_natural?(n) permet determinar si un nombre és natural.

· La sentència llista_de_naturals(n) presenta una llista de nombres naturals.

· La sentència múltiples_naturals(n,m) presenta una llista de m múltiples de n.

· La sentència divisors_naturals(n) presenta una llista dels divisors.

· La sentència següent_natural(n) presenta el nombre següent.

· La sentència és_primer?(n) indica si un nombre solament té dos divisors positius.

· La sentència és_compost?(n) indica si el nombre té més d’un factor primer.

· La sentència següent_primer(n) presenta el següent nombre primer.

· La sentència llista_de_primers(n) presenta la llista de nombres primers des de l’1 fins a n.

· La sentència llista_de_compostos(n) presenta la llista de nombres compostos des de l’1 fins a n.

· La sentència és_natural_senar?(n) indica si un nombre natural és imparell.

· La sentència és_natural_parell?(n) indica si un nombre natural és parell.

· La sentència factoritza_natural(n) presenta els factors primers d’un nombre.

· La sentència natural_aleatori(a,b) presenta un nombre natural a l’atzar des de a fins a b.

· La sentència llança_dau() mostra un número natural aleatori des de l’1 fins al 6.

· La sentència llança_moneda() nostra el text “cara” o “creu” a l’atzar.

· La sentència xifres_natural(n) indica la quantitat de xifres que té un nombre natural.

· La sentència taula_de_multiplicar(n) presenta una taula de multiplicar.

· La sentència nombre_poligonal(t,n) mostra el nombre poligonal del polígon de t costats situat en la posició n. Has d’utilitzar el 3 per als nombres triangulars, el 4 per als quadrats, el 5 per als pentagonals… L’1 per al primer nombre de la llista, 2 per al segon…

· La sentència rally_de_sumes() és un joc per a calcular la velocitat que té una persona en la suma.

· Les sentències rally_de_multiplicacions() i rally_de_nombres_primers() permet jugar amb multiplicacions i nombres primers.

També podeu considerar que un paquet de funcions siga molt important, i desitgeu que sempre estiga actiu. Podeu activar un paquet automàticament escrivint la seua sentència d’activació en el paquet  maxima-init.mac.

Activitat (activació automàtica del paquet naturals.mac).

· Iniciem l’activitat considerant que ja existeix el document maxima-init.wxm. i que el paquet naturals.mac està en la carpeta “C:/maxima-5.38.1/share/maxima/5.38.1_5_gdf93b7b_dirty/share/
· Obriu una sessió de wxMaxima amb el document maxima-init.wxm
· Escriviu la sentència load(“naturals”)$

· Guardeu el document maxima-init.wxm
· Exporteu-lo amb el nom maxima-init.mac, el programa indica que ja existeix i pregunta si voleu substituir-lo. Contesteu que sí.
· Ara podeu tancar la sessió de wxMaxima, i la pròxima vegada que obriu una sessió de wxMaxima, totes les funcions del paquet naturals.mac estaran disponibles.

Programació amb Maxima i wxMaxima

“Maxima” hereta l’estructura de dades del llenguatge “Lisp” i fonamentalment són els àtoms que poden ser un nombre o un text, les llistes que estan tancades entre claudàtors i els conjunts que estan tancats entre claus. Per guardar un valor o una expressió en una variable has d’escriure primer el nom o identificador de la variable, després el caràcter “dos punts” seguit del valor que vols guardar.

Activitat

· En l’exemple s’aprecia la declaració d’un àtom, d’una llista i un conjunt.

Definició de funcions informàtiques. Les funcions representen l’estructura fonamental de la programació. Estan formades per un identificador, a continuació parèntesis que poden contenir una sèrie d’identificadors que representen les variables d’entrada de la funció i finalment els signes dos punts i igual “:=” seguit d’una sentència o d’una seqüència de sentències.

Activitat

· La primera funció calcula l’àrea d’un rectangle i la segona escriu taules de multiplicar.

La sentència “block”. En una funció es necessiten variables i per això s’ha creat la sentència “block” que permet incloure una llista de declaracions de variables i una sèrie de sentències separades per comes.

És normal definir funcions dins de funcions amb la intenció de crear utilitats exclusives per a la funció que fa de continent, resulta d’importància tenir molt clar l’accés que tenim al contingut de les variables dins de cada funció. Seguint la similitud de les finestres informàtiques, que es cataloguen en “mares“, “filles” i “germanes“, una funció en “Maxima” no té accés a les variables declarades en funcions “filles”, “germanes” i tampoc a les variables de la funció “mare” amb noms idèntics a les variables pròpies, en resum, solament és possible accedir a les variables pròpies i a les variables de les funcions ascendents de nom diferent.

Les funcions finalitzen tornant el valor de l’última sentència o mitjançant la sentència “return“.

Activitat
· Aquesta funció calcula els paràmetres de les circumferències.

La sentència condicional. La sentència “if” permet realitzar l’execució d’una sentència en funció del resultat d’una condició. Si la condició és certa s’executa la sentència posterior a la paraula “then” i si és falsa, la següent de la paraula “else”, en cas d’existir.

Existeix una variant que permet una sèrie de condicions i sentències, s’executarà la sentència que està a continuació de la primera condició vertadera.

Activitat

· Podeu executar sentències en funció del resultat d’una condició.

Comentaris. En tot llenguatge de programació els comentaris són fonamentals i en “Maxima” s’han de tancar entre els signes “/*” i “*/“. Una avantatja de “Maxima” respecte d’altres llenguatges de programació, és la capacitat d’incloure comentaris dins de comentaris.

La sentència de repetició. Aquesta instrucció permet repetir una sèrie de sentències. Si no existeixen condicions inicials, el bucle és infinit i la sortida s’ha de realitzar mitjançant una condició combinada amb la sentència “return“, aquesta sentència serveix per sortir del bucle, no de la funció.

Amb la paraula “for” es declaren les condicions inicials, començant per l’identificador de la variable que portarà el control del bucle, assolint un valor en cada iteració. Aquests valors poden estar proporcionats per una llista, per un conjunt o per un valor inicial amb un increment declarat després de la paraula “step” o una expressió declarada després de la paraula “next“, en el cas d’ometre aquests elements s’assumeix un increment unitat.

La finalització de les iteracions pot produir-se per l’acabament dels elements de la llista o conjunt, per superació del límit declarat després de la paraula “thru“, quan la condició posterior a la paraula “while” és falsa o la condició després de la paraula “unless” és vertadera.

Activitat

· És possible controlar una sentència de repetició sense les condicions inicials i finals, però aquestes han d’aparèixer dins de la sentència “do”, resultant processos difícils de gestionar. La funció de l’exemple gestiona l’inici mitjançant la inexistència d’una variable. Que passaria si  tinguera un valor predefinit?  possiblement una repetició infinita  de les sentències.

· És més adequat utilitzar la sentència “for“.

La sentència de control d’errors. Les funcions amb paràmetres tenen errors causats generalment per l’escriptura errònia dels paràmetres d’entrada. És convenient tancar els càlculs realitzats amb les variables d’entrada en una sentència “errcatch” que torna una llista buida si es produeix algun error dins dels parèntesis. Després de la sentència “errcatch” s’ha de fer una verificació del contingut de la variable de control amb una sentència “if” per poder informar a l’usuari dels problemes.

Activitat

· Gràcies a la sentència errcatch és possible controlar molts problemes de programació.





Deixa un comentari

L'adreça electrònica no es publicarà. Els camps necessaris estan marcats amb *

*

?>