GeoGebraCAS: Incorporació del Calculador Algebraic Simbòlic

Com ja us hem presentat, una novetat important del GeoGebra 4.2 és la incorporació dinàmica del càlcul algebraic simbòlic (CAS) en una nova finestra. Això augmenta moltíssim el potencial del GeoGebra.

Pot ser interessant saber què hi ha darrere del calculador simbòlic…

Si ja coneixeu Maxima o altres calculadors simbòlics clàssics com ara Derive, Mathematica, Wiris, … segurament al CAS del GeoGebra hi cercareu certes similituds. Això sí, ara en programari lliure i sense necessitat d'haver d'instal·lar res més. En trobareu algunes…
Per qui en vulgui saber una miqueta més us fem saber que el nou GeoGebra no utilitza cap nou CAS, sinó que mira d'integrar altres eines de programari lliure que ja funcionen de manera contrastada i aprofitar-ne la feina feta.

Doncs bé, com a curiositat, heu de saber que al darrera hi ha un CAS que ja té una edat… El sistema CAS Reduce és del 1960 (Anthony Hearn) i el seu codi es va alliberar el 2009 i ara forma part de GeoGebra des del 2011. 1)


Tot seguit podreu practicar algunes coses amb el CAS incorporat al GeoGebra. A la finestra CAS hi veureu unes caselles, amb un espai on entrar comandaments, i just a sota l'espai on se'n mostra el càlcul simbòlic.

Cal tenir present algunes diferències entre la línia d'entrada de comandaments i funcions del GeoGebra i la manera d'entrar comandaments al CAS:

  • podreu usar variables que no estiguin assignades a cap valor. Per exemple (a+b)^2 s'avaluarà com a^2+2*a*b+b^2
  • El símbol = cal usar-lo per a equacions, i en canvi, el símbol := cal usar-lo per a assignacions. És a dir, a=2 no assignarà el valor 2 a la lletra a (en parlarem en breu…)
  • Convé que remarqueu de manera explícita els productes amb el símbol * o bé deixant un espai entre símbols. Així, a la línia d'entrada de comandaments i funcions es pot usar de manera indiferent a(b+c) i a*(b+c) per un producte, però a la finestra CAS convé explicitar el producte: a*(b+c) o bé a (b+c).


Abans de fer-hi proves us volem fer una important reflexió sobre el lligam del CAS amb els objectes existents, o no,….

  • Exemple 1: Si proveu de fer la derivació de ax³ respecte x. Escriviu el comandament Derivada[a*x^3] i premeu la tecla intro, tal i com apareix a la imatge següent



Derivada al CAS

la podreu fer encara que a sigui un objecte no definit al GeoGebra, aquest és un canvi de concepte prou important.


  • Exemple 2: Proveu ara d'introduir un punt lliscant n amb valors enters a la finestra gràfica, i a la finestra CAS en mostreu la seva factorització. Com és d'esperar, en variar n variarà el càlcul.



Factoritzant un enter

  • Exemple 3: Recordeu un problema que us plantejat en la pràctica anterior:

demostreu que el nombre 48841 (n     escrit en qualsevol base n, sempre és un quadrat perfecte.

  • Doncs bé, el mirarem de resoldre de manera molt senzilla amb la finestra CAS:
    • Obriu el GeoGebra o feu Fitxer | Nou, ja que no volem tenir cap objecte:
    • Si proveu d'escriure el comandament Factoritza[4*n^4+8*n^3+8*n^2+4*n+1] a la línia d'entrada de comandaments del GeoGebra, segurament us sortira un missatge avisant que la variable n no està definida.
    • En canvi, malgrat no tenir definida cap variable n, si el mateix comandament l'escrivim a la finestra CAS, la resposta és ben diferent:
    • El GeoGebra ens respon → (2 n 2 + 2 n +1 ) 2
    • Per tant, ara sí que estarem d'acord que el nombre
      48841 (n     = ( 221 (n ) 2 =   (2 n 2 + 2 n +1 ) 2 escrit en base n oi?



En general els calculadors algebraics simbòlics creen la necessitat que els usuaris coneguin molts comandaments.
Com ja sabeu l'equip del GeoGebra treballa per posar-nos les coses el màxim de fàcils.
I per tant es volia una plena integració i lligam dinàmic entre el CAS i la resta de finestres: les gràfiques i la finestra algebraica. No es tractava només d'incorporar el càlcul simbòlic, sinó que és important remarcar que, com hem vist, a més a més hi ha un lligam dinàmic amb la resta d'objectes.

La incorporació del CAS es pot fer en una nova finestra flotant del GeoGebra. En ella podreu entrar els comandaments per escrit o mitjançant botons.

 Eines CAS







Documentació sobre el CAS

Tal i com fem en aquest darrer mòdul, us proporcionem un seguit d'enllaços que creiem que poden ser útils.

Com veureu bona part d'aquesta documentació està en anglès i per tant, si no sabeu la traducció exacta d'algun comandament, i el voleu provar, potser us convé canviar l'idioma del GeoGebra a l'anglès.

Enllaç Breu descripció
CAS View La finestra CAS, en anglès
http://wiki.geogebra.org/es/Vista_Algebraica_CAS La finestra CAS, en castellà
CAS Tools Les eines CAS, en anglès
CAS Commands Alguns comandaments específics del CAS, en anglès
CAS Restricted Commands Alguns comandaments restringits a la finestra CAS, en anglès
Interfaz de la vista CAS Indicacions sobre la finestra CAS en castellà




Entrada de comandaments bàsics a la finestra CAS


Tot seguit us expliquem com heu de procedir per fer entrades de comandaments bàsics i operar amb les sortides (el retorn, o output en anglès).

  • Prement Intro es farà l'avaluació de l'entrada.
  • Prement Ctrl + Intro es farà una avaluació numèrica: per exemple sqrt(2) retornarà una aproximació del tipus 1.41.
  • Prement Alt + Intro es comprovarà l'entrada però no s'avaluarà. Per exemple b + b quedarà com b + b. Noteu que les assignacions sempre s'avaluen , per exemple a := 5
  • En una filera buida, empreu:
    • la barra d'espai per a obtenir la darrera sortida (el què retorna el GeoGebra), o equivalentment fer un clic en aquella sortida.
    • ) tanqueu un parèntesis, per a la darrera sortida entre parèntesis
    • = per a l'anterior entrada
  • Si desitgeu fer una entrada i que no s'avaluï podeu escriure un ; al final, per exemple a := 5;
  • Proveu per exemple b(n):=2n+3
  • Així doncs no s'ha de confondre el símbol := amb = que usarem per a les equacions:
    • Si entreu 3x + 5 = 7 serà una equació.
    • Donada una equació en una fila, si en una filera posterior hi voleu operar podeu usant parèntesis, per exemple, useu (3x + 5 = 7) - 5 que restarà 5 a banda i banda…
    • i si seguim amb equacions convé conèixer els comandaments MembreEsquerre[ <Equació> ] i MembreDret[ <Equació> ], que fan el que és obvi esperar.

I per tal de comprovar el lligam amb la finestra (o finestres gràfiques), observeu que cada filera de la finestra CAS té un botonet que permet, sempre que sigui possible, fer visible l'objecte en qüestió.

visibilitat d'objectes



  • Si es volen fer referències a les línies d'entrada, es pot usar el símbol $:
    • $ es repeteix la darrera entrada
    • I amb el $5 s'introdueix l'entrada de la línia 5.



Per últim, si es vol alliberar un nom d'una variable, per exemple b, podem escriure Esborra[b]





Treballant CAS amb 3 finestres: derivades amb paràmetres o variables



Tot seguit podreu fer algunes proves amb uns exemples molt breus. Experimenteu vosaltres mateixos i segur que us sorprendreu.
En el següent vídeo podreu observar com es poden calcular derivades de diferents maneres.

  • Es pot calcular, com hem dit, la derivada de l'expressió 3*ax² on a no cal ni haver-la definit, per tant GeoGebra interpreta a com un paràmetre
  • En canvi, podeu definir un punt lliscant b i calcular la derivada de l'expressió b*x³ i provar de fer variar el paràmetre b i veure'n la repercussió dinàmica


Comproveu-ho amb el següent vídeo

(If Flash is installed, you can watch a video inside this web page.)



Treball amb matrius


Les matrius s'han d'escriure com una llista de llistes. Per exemple heu d'entrar {{1,0},{0,1}} per treballar amb la matriu Identitat.

En la següent imatge podreu veure un exemple amb matrius, el quadrat d'una matriu, la seva inversa o el seu determinant.
Proveu de repetir els passos:

Exemples de matrius

  • Al menú Visualitza seleccioneu només treballar amb la finestra CAS
  • La drecera de teclat Ctrol + Shift + K activa o desactiva la finestra CAS (segurament de l'alemany Kalkulator). Ara podeu ocultar les altres finestres
  • Definiu la matriu A (observeu que podeu fer la definició usant A := )
 A:={{k,1,1},{k,1,2},{k,2,3}} 
  • Situats a la segona línia, feu clic la matriu de la primera línia, amb això la matriu s'haurà copiat a la segona línia i només haureu d'indicar que en voleu fer el quadrat. Podeu escriure ^2, $^2 o bé podeu usar simplement A^2
  • De la mateixa manera, situats a la tercera línia, seleccioneu novament la matriu A de la primera línia i escriviu ^(-1), o bé, de nou simplement A^(-1). Comproveu si en fa la matriu inversa? I si escriviu Inversa[A]?
  • Atenció que com que A era una llista no heu de confondre-us. Proveu el comandament Inverteix[A] i reflexioneu l'operació que es fa sobre les llistes…
  • Si encara voleu practicar amb aquest comandament Inverteix[ ], podeu provar d'escriure al CAS Inverteix[{"dilluns", "dimarts", "dimecres", "dijous", "divendres", "dissabte", "diumenge"}]. Si ho poseu a la línia d'entrada, llavors el resultat quedarà escrit en pantalla un text sobre l'altre, proveu d'escriure-ho en una taula escrivint: Taula[Inverteix[{"dilluns", "dimarts", "dimecres", "dijous", "divendres", "dissabte", "diumenge"}]]
  • Tot plegat, com haureu pogut comprovar, cal tenir les coses ben clares en usar el CAS…
    Proveu el comandament Transposa[A].
  • Després calculeu-ne el determinant. Podeu escriure Determinant[A] parant atenció amb el text predictiu, o bé entrant Determinant[] i seleccionant la matriu A.
  • Proveu també els comandaments RangMatriu[A] o Identitat[n].
  • En acabat proveu de fer algun canvi a la primera línia, la de definició. Veureu com tots els càlculs s'actualitzen dinàmicament



Treball amb els botons: simplificant fraccions algebraiques


En el següent vídeo podreu comprovar quins passos cal seguir per simplificar una fracció algebraica factoritzant-ne primer el numerador i després el denominador.

(If Flash is installed, you can watch a video inside this web page.)





Resolució d'un problema de selectivitat de càlcul d'asímptotes amb CAS



Imaginem que hem de calcular les asímptotes de la funció f(x)=(4x^2)/(2x+1).
Farem una construcció de manera que sigui el màxim de dinàmica i que, per tant, en haver canviat puguem canviar la funció f per una altra:

  • En primer lloc ens caldrà fer visible la finestra CAS del GeoGebra. També us aconsellem deixar visibles la finestra algebraica i la zona gràfica
  • Tot seguit entrem la funció f. Escriurem f(x):=(4x^2)/(2x+1) parant molta cura amb el símbol :=
  • S'haurà creat la funció f a la finestra algebraica i s'haurà representat la funció a la finestra gràfica. Canvieu el color i el traç de la funció i observeu la repercussió a la finestra CAS
  • A continuació assignarem les lletres N i D al numerador i al denominador
  • A la segona filera de la finestra CAS hi escriurem N:=Numerador[f(x)]
  • A la següent filera hi escriurem D:=Denominador[f(x)]
  • A la filera 4 escriurem Resol[N].
    En prémer Intro, a la mateixa filera, a sota, el GeoGebra ens respon → {x=0}. Això vol dir que el numerador només s'anul·la per aquest valor de x.
  • A la filera 5, hi escriurem una nova assignació:
    A:=Resol[D]. Ara el GeoGebra ens respon → A:={x=-1/2}.
    De nou, pareu molta atenció amb la utilització del símbol := que ens permetrà actualitzar els càlculs…
    Podeu aplicar l'estil visual que considereu més adequat a aquesta asímptota vertical que haurà aparegut a la finestra gràfica. Us suggerim unes línies discontínues.
    Pareu atenció que tal i com hem fet la definició, i tal i com podeu comprovar a la finestra algebraica, tenim una llista A amb les arrels del denominador. Encara més: fixeu-vos que en la finestra CAS es mostra el valor exacte en forma de fracció, i en canvi, a la finestra algebraica la seva aproximació numèrica. Recordeu que una funció donada com un quocient de polinomis, per tal de trobar les asímptotes verticals es poden cercar quins valors anul·len el denominador i mirar que el límit quan x tendeix a aquest números doni infinit…, en parlarem en breu dels límits…
    • Us proposem de fer el càlcul de l'asímptota obliqua calculant un quocient.2) En la següent filera escriviu AO(x):=Quocient[N,D], de nou haureu vist que a la zona gràfica apareix aquesta funció, apliqueu l'estil gràfic suggerit.
    • Podeu escriure el comandament Asímptota[f(x)] a la finestra algebraica, observeu que aquest comandament no utilitza CAS i que per tant tenim una llista amb les asímptotes com a aproximacions numèriques. S'actualitzaran els valors d'aquesta llista si actualitzem la definició de la funció f inicial?
    • Com us dèiem ara toca calcular límits.
      • Abans però pensem en els límits que ens cal calcular.
        Volem calcular el límit de la funció f(x) quan la x tendeix a quin valor? O a quins valors? I calen els límits per l'esquerra i per la dreta, oi?
        Aquí és on ens aprofitarem del fet que A és una llista, una llista d'equacions, i a més, utilitzarem el comandament MembreDret[ ] referit a equacions. El comandament MembreDret[A,1] ens retornarà el membre de la dreta de l'equació del primer element de la llista A.
      • A la finestra CAS, a la filera 7 hi podeu escriure els següents límits:
        LímitEsquerra[f(x),x,MembreDret[A,1]]
      • LímitDreta[f(x),x,MembreDret[A,1]]
      • Ara, us proposem calcular l'asímptota obliqua altre cop calculant límits.
      • A la novena filera escriviu-hi m:=Límit[f(x)/x,x,∞]
      • I a la desena n:=Límit[f(x)-m*x,x,∞]

Interessant oi?

  • Si ho creieu oportú una casella d'entrada permetria canviar la funció que es cal estudiar.

Asímptotes amb el CAS del GeoGebra





Alguns comandaments específics CAS



Alguns comandaments només es poden utilitzar en la finestra CAS, us en recollim alguns i us animem a que els proveu.

  • Els següents comandaments treballen en el camp dels nombres complexos o de les aproximacions numèriques, veureu que en la traducció al català acaben amb C o N majúscules:
    • FactoritzaC
    • SolucionsC
    • ResolC
    • IntegralN
    • SolucionsN
    • ResolN



  • Altres comandaments interessants:
    • DenominadorComú, només vàlid per a dues expressions.
      Proveu DenominadorComú[3 / (2 x + 1), 3 / (4 x^2 + 4 x + 1)]
    • Racionalitza[ <Nombre> ]



I ja per acabar un comandament amb el que cal anar en compte:

  • TextValorExacte[ ] mira de calcular el valor exacte d'una aproximació numèrica. Compareu els resultats de les següents entrades:
    • TextValorExacte[1.41]
    • TextValorExacte[1.414213562373095]
    • TextValorExacte[5.382332347441762, {sqrt(2), sqrt(3), sqrt(5)}]

Penseu en això que diem de "cal anar en compte"…
D'aquest comandament en teniu més informació, en anglès quan es parla de SurdText[] al web http://wiki.geogebra.org/en/SurdText_Command


1) si en voleu saber una mica més vegeu una entrada al bloc http://blog.geogebra.org/2012/05/geogebraweb-cas
2) En el cas particular de funcions racionals P(x)/Q(x), tenen asímptota obliqua quan el grau de P(x) és una unitat superior al grau de Q(x). En aquests casos l'asímptota és el quocient de la divisió de P(x) entre Q(x), que és el que us suggerim.