miércoles, 1 de julio de 2015

En una ciudad se publican tres periódicos ...

ENUNCIAT:
En una ciutat es publiquen tres diaris (A, B, i C). Hem fet un estudi sobre l'ús de la premsa i per això hem escollit un grup de 100 persones. Trobem que 54 llegeixen el diari A; 41, el diari B; 26, el C; 11 llegeixen tan A com B; 9, A i C; 10, B i C; i 6, llegeixen A, B, i C. Es demana:
    a) Quantes persones llegeixen almenys un dels tres diaris ? Hi ha algú que no llegeixi cap diari?
    b) Quantes persones llegeixen únicament el diari A?
    c) Quantes persones llegeixen el diari B o bé el diari C, però no el diari A?


Notació:

El nombre d'elements d'un conjunt $X$ s'anomena cardinal de $X$, i es designa amb la notació $\text{card}(X)$

El complement d'un conjunt X (conjunt d'elements que no pertanyen a X) es representa amb la notació

SOLUCIÓ
a) Pel principi d'inclusió/exclusió:

$\text{card}(A \cup B \cup C)=\text{card}(A)+\text{card}(B)+\text{card}(C)-\text{card}(A \cap B)-\text{card}(A \cap C)-$
    $-\text{card}(B \cap C)+\text{card}(A \cap B \cap C)$

i, d'acord amb la informació donada,

$$\text{card}(A)=54$$
$$\text{card}(B)=41$$
$$\text{card}(C)=26$$
$$\text{card}(A \cap B)=11$$
$$\text{card}(A \cap C)=9$$
$$\text{card}(B \cap C)=10$$
$$\text{card}(A \cap B \cap C)=6$$

trobem que el nombre de persones que llegeixen almenys un diari es igual a
vemos que el número de personas que algún ( al menos un ) diario es

$$\text{card}(A \cup B \cup C)=54+41+26-11-10-9+6=97$$

Per tant, el nombre de persones que no llegeixen cap diari s'obté fent $100 - 97 = 3$

Figura 1.

A partir dels nombres cardinals també podríem fer servir un diagrama de Venn per calcular altres nombres cardinals seguint un mètode de comprensió gràfica, tal i com es mostra a la figura; per això, cal començar anotant el nombre cardinal del conjunt intersecció dels tres conjunts, i, de dins a fora, podem anar restant els cardinals de les zones comunes fins arribar a completar tot el diagrama.


b) Tornant a fer ús de la noció d'inclusió-exclusió i, de forma natural, transcrivint al llenguatge de l'àlgebra de conjunts, escriurem el nombre de persones que llegeixen únicament el diari A de la forma $$\text{card}(A \cap \bar{B} \cap \bar{C})=\text{card}(A)-\text{card}(A \cap B) - \text{card}(A \cap C)+\text{card}(A \cap B \cap C)$$ $$=54-9-11+6$$ $$=40$$

c) Per calcular el nombre de persones que llegeixen els diaris B o bé C, però no el diari A, transcrivint les sumes i les restes al llenguatge de l'àlgebra de conjunts (com hem fet als apartats anteriors), escriurem:
$$\text{card}(B \cap C \cap \bar{A})=\text{card}(B \cap C)-\text{card}(A \cap B) - \text{card}(A \cap C)+\text{card}(A \cap B \cap C)$$ $$=57-11-9+6$$ $$=43$$

Observació/comentari: Fent ús d'aquests recomptes, i donant un pas més, per aprofitar els resultats que hem trobat, seria ben senzill aplicar el principi de Laplace per calcular la probabilitat que, escollida una persona a l'atzar, aquesta pertanyés a algun dels diversos subconjunts de l'esquema del diagrama de Venn, d'acord amb l'associació abstracta que podem establir entre la noció de conjunt i la de succés d'un espai de probabilitats.

Referències:
  • BOADAS, J.; VILLALBÍ, R.   Álgebra moderna a través de los problemas. Teide, 1974
  • GRIMALDI, R.   Matemáticas discreta y combinatoria. Addison-Wesley, 1989

[nota del autor]

Precisión en los cálculos con MAXIMA


Fem un parell de provatures amb la presentació de dos nombres decimals, com ara els nombres irracionals   i   :


Cal tenir en compte que les quantitats en coma surant (floating point) i de precisió il·limitada (big float) es presenten amb la comanda bfloat; per presentar les quantitats amb un nombre normal de dígits es fa servir la comanda float. A continuació, per exemple, fem servir bfloat per fer aparèixer 50 dígits:



[nota del autor]

Ejemplos de gráficos con MAXIMA

Ejemplo de uso de Gráficas de funciones con MAXIMA
Consideremos el problema de resolver la ecuación trascendente $\sin{x}+x^2=0$, esto es, el de resolver la ecuación $\sin{x}=-x^2$,
que podemos resolver, de forma aproximada, representado las gráficas de las funciones de ambos miembros, encontrando los puntos de intersección:
(%i7) plot2d ([sin(x),-x^2], [x, -2*%pi, 2*%pi])


Ejemplo de gràfics de superficies con MAXIMA
Sea una superficie en $\mathbb{R}^3$ como, por ejemplo, la bada de Möbius; podemos visualizarla tecleando:
(%i1) plot3d([cos(x)*(3+y*cos(x/2)),sin(x)*(3+y*cos(x/2)),y*sin(x/2)],[x,-%pi,%pi],[y,-1,1],[grid,50,15]);


[nota del autor]

Primeros pasos programando con MAXIMA ...

Els primers passos programant amb MAXIMA
Primera cosa ...

Editem la funció que anomenem "programa_extremadament_senzill"
(%i5) programa_extremadament_senzill():=
(print("hola")
)$
Depurem els possibles errors i fem actuar la funció escrivint l'entrada
(%i6) programa_extremadament_senzill();
Obtenint ...
hola
(%o6) hola

Observem que les entrades de l'usuari es designen amb el símbol del sistema %i i les sortides amb el símbol %o, convenientment numerades.

Exemple 1 (totes les variables són globals)

(%i3) programa_senzill_1(a,b):=
(
s:a+b,
print("suma de a i b =",s)
)$
(%i4) programa_senzill_1(2,3);
suma de a i b = 5
(%o4) 5


Exemple 2 (els paràmetres d'entrada a i b són variables globals, mentre que el resultat s és una variable local)

(%i1) programa_senzill_2():=
block([s],
a:read("entreu el primer sumand"),
b:read("entreu el segon sumand"),
s:a+b,
print("suma de a i b =",s)
)$

(%i2) programa_senzill_2();
entreu el primer sumand 1;
entreu el segon sumand 2;
suma de a i b = 3
(%o2) 3

Observem que les variables locals d'una funció (aquí, "programa_senzill_2") - en aquest, l'única variable local és s - apareixen, després de block( entre claudàtors - block([s],... -, separades per comes si n'hi ha més d'una. El parèntesi "(" amb què hem començat el "block" - "block(" - cal tancar-lo necessàriament al final. El símbol de l'acabament "$" indica a l'interpret que no volem eco del sistema - llevat de la comunicació dels possibles errors - un cop hàgim validat la funció

Exemple 3 (totes les variables són locals)

(%i1) programa_senzill_3():=
block([s,
a:read("entreu el primer sumand"),
b:read("entreu el segon sumand")],
s:a+b,
print("suma de a i b =",s)
)$

(%i2) programa_senzill_3();
entreu el primer sumand 1;
entreu el segon sumand 2;
suma de a i b = 3
(%o2) 3

Treballant amb fitxers de funcions que prèviament hem programat
Podem fer servir un bloc de notes per editar codi font de les funcions
que volem fer servir en una sessió de càlcul amb MAXIMA, a més, naturalment,
de les moltes que ja té incorporades. A mode d'exemple,
he escrit el codi de dues funcions molt simples,
funcio_que_multiplica() i funcio_potencial(), en un mateix fitxer de text amb extensió .mac: prod.mac
Juntament amb el codi font de les funcions, podem posar comentaris abastant una o vàries línies, a l'estil de C o Java; per exemple, /* això només és un comentari */, és a dir, obrint amb "/*" i tancant amb "*/"

(contingut del fitxer prod.mac)

/* multiplicació de dos nombres */
funcio_que_multiplica():=
block([p,
a:read("entreu el primer factor"),
b:read("entreu el segon factor")],
p:a*b,
print("a x b =",p)
)

/* potència de dos nombres */
funcio_potencial():=
block([w,
a:read("entreu la base de la potència"),
b:read("entreu l'exponent")],
w:a^b,
print("a^b =",w)
)


Per fer ús d'aquest fitxer amb les funcions que hem programat, carreguem el fitxer prod.mac des d'una sessió de MAXIMA
(%i8) load("e:/taller_maxima/ex_160807/prod.mac");
(%o8) e:/taller_maxima/ex_160807/prod.mac

I, si s'escau, després de depurar el codi, emprem les funcions que conté:

(%i9) funcio_que_multiplica();
entreu el primer factor 4;
entreu el segon factor 2;
a x b = 8
(%o9) 8

(%i10) funcio_potencial();
entreu la base de la potència 2;
entreu l'exponent 3;
a^b = 8
(%o10) 8

[nota del autor]