Blogue

Draw a graph of matrices in LaTeX using Sage

18 octobre 2012 | Catégories: latex, sage | View Comments

In version 5.3 of Sage, if the vertices of a graph are matrices, then the default latex output does not compile. The default format is a tikzpicture and uses the tkz-berge library. One solution is to change the format to dot2tex. See below.

The default tikz output is:

sage: m = matrix(3, range(9))
sage: m.set_immutable()
sage: G = Graph()
sage: G.add_vertex(m)
sage: latex(G)
\begin{tikzpicture}
%
\useasboundingbox (0,0) rectangle (5.0cm,5.0cm);
%
\definecolor{cv0}{rgb}{0.0,0.0,0.0}
\definecolor{cfv0}{rgb}{1.0,1.0,1.0}
\definecolor{clv0}{rgb}{0.0,0.0,0.0}
%
\Vertex[style={minimum size=1.0cm,draw=cv0,fill=cfv0,text=clv0,shape=circle},
LabelOut=false,L=\hbox{$\left(\begin{array}{rrr}
0 & 1 & 2 \\
3 & 4 & 5 \\
6 & 7 & 8
\end{array}\right)$},x=2.5cm,y=2.5cm]{v0}
%
%
\end{tikzpicture}

This output does not compile. Here is the error I get:

sage: view(G)
An error occurred.
This is pdfTeX, Version 3.1415926-1.40.10 (TeX Live 2009) (format=pdflatex 2011.4.19)  18 OCT
2012 21:34
entering extended mode

[...]

! Use of \tikz@@scope@env doesn't match its definition.
\pgfutil@ifnextchar #1#2#3->\let \pgfutil@reserved@d =#1\def \pgfutil@reserved@a {
                                                                                  #2}\def \pgf
util@reserved@b {#3}\futurelet \pgfutil@let@token \pgfutil@ifnch
l.54 \end{array}\right)$},x=2.5cm,y=2.5cm]{v0}

If you say, e.g., `\def\a1{...}', then you must always
put `1' after `\a', since control sequence names are
made up of letters only. The macro here has not been
followed by the required stuff, so I'm ignoring it.

! Use of \tikz@@scope@env doesn't match its definition.

[...]

!  ==> Fatal error occurred, no output PDF file produced!

Latex error

The command to install dot2tex:

sage -i dot2tex-2.8.7-2

As the documentation of G.layout_graphviz() says, install graphviz >= 2.14 so that the programs dot, neato, ... are in your path. This allows the following to work:

sage: m = matrix(3, range(9))
sage: m.set_immutable()
sage: G = Graph()
sage: G.add_vertex(m)
sage: G.set_latex_options(format='dot2tex')
sage: view(G)

To obtain the tikz code:

sage: tikz_string = G.latex_options().dot2tex_picture()
sage: print tikz_string
\begin{tikzpicture}[>=latex,line join=bevel,]
%%
\node (012345678) at (34bp,22bp) [draw,draw=none]
{$\left(\begin{array}{rrr}0 & 1 & 2 \\3 & 4 & 5 \\6 & 7 &
8\end{array}\right)$};
%
\end{tikzpicture}
Read and Post Comments

Le printemps québécois

08 octobre 2012 | Catégories: politique | View Comments

Pendant le printemps 2012, au Québec, le mouvement étudiant contre la hausse des frais de scolarité a été sans précédent. Une multitude de textes, vidéos, images se sont retrouvées sur le web. Dans ce message, je rassemble un certain nombre de liens que j'ai conservés dans mes signets.

Créations artistiques

Le printemps québécois a engendré une quantité phénoménale de créations artistiques dont voici quelques-unes:

"Nous, étudiants, ne sommes pas des casseurs violents comme Jean Charest et son équipe s'efforcent de nous représenter. Nous sommes une génération remplie d'espoir envers un futur meilleur, en quête d'une société plus juste. Nous marchons depuis février presque quotidiennement pour faire entendre notre indignation face à un gouvernement sourd, entêté à nous discréditer pour séduire son électorat de droite. Cette fois-ci, nous avons rassemblé des groupes d'étudiants faisant briller notre grand mouvement par leur originalité d'expression. Des artistes engagés dans la réussite de notre soulèvement depuis ses débuts. Sur des airs à saveur révolutionnaire, nous maintenons la pression et nous déclarons haut et fort et en musique, une fois de plus...", Libdub Rouge, 29 avril 2012.

Nous point d'interrogation

  • NOUS?, un événement unique de prise de parole, de réflexion sur l'état du Québec, sa démocratie, samedi 7 avril 2012, de midi à minuit. Les vidéos sur youtube.

Les meilleurs textes

Médias alternatifs

Plus que jamais, il faut s'informer et pas seulement dans les médias traditionnels. Voici des médias alternatifs que j'ai consultés ce printemps:

Des blogues

Des blogues qui ont traité du mouvement étudiant:

Autres sites sur le Mouvement étudiant

D'autres sites sur le mouvement étudiant:

Read and Post Comments

Définition d'une série formelle en Sage

25 septembre 2012 | Catégories: sage | View Comments

Question :

Comment fait-on en sage pour avoir le terme général d'une serie formelle en \(x\) comme \(1/(1-q^2x)\) par exemple, où \(q\) est un paramètre (il faudrait obtenir \(q^{2k} x^k\) ) ?

Quelques exemples se trouvent dans la documentation sur les espèces en Sage, mais il faut faire quand même quelques essais et combiner quelques idées pour y parvenir. Une façon de procéder est définir une espèce récursive en assignant un poids pour le paramètre (voir Weighted Species).

Sous une forme récursive, la série s'écrit :

\[ L = 1 + q^2 \cdot x \cdot L \]

Alors, en sage, on écrira:

sage: q = QQ['q'].gen()
sage: E = species.EmptySetSpecies()
sage: X = species.SingletonSpecies(weight=q^2)
sage: L = CombinatorialSpecies()
sage: L.define(E+X*L)
sage: L.generating_series().coefficients(10)
[1, q^2, q^4, q^6, q^8, q^10, q^12, q^14, q^16, q^18]

Aussi:

sage: X.generating_series().coefficients(5)
[0, q^2, 0, 0, 0]
sage: E.generating_series().coefficients(5)
[1, 0, 0, 0, 0]

On peut faire le produit de deux espèces:

sage: A = X * X
sage: A.generating_series().coefficients(5)
[0, 0, q^4, 0, 0]

On peut faire la somme de deux espèces:

sage: B = X + X
sage: B.generating_series().coefficients(5)
[0, 2*q^2, 0, 0, 0]

mais pas la différence:

sage: E - X
Traceback (most recent call last) :
...
TypeError: unsupported operand type(s) for -: 'EmptySetSpecies_class'
and 'SingletonSpecies_class'

ni le quotient:

sage: E / X
Traceback (most recent call last):
...
TypeError: unsupported operand type(s) for /: 'EmptySetSpecies_class'
and 'SingletonSpecies_class'

Encore moins une combinaison des deux:

sage: E/(E-X)
Traceback (most recent call last) :
...
TypeError: unsupported operand type(s) for -: 'EmptySetSpecies_class'
and 'SingletonSpecies_class'

et je ne sais pas pourquoi...

Read and Post Comments

Réunion de passation - VP compétitions - FQU

12 septembre 2012 | Catégories: ultimate | View Comments

Aujourd'hui, j'ai rencontré Jean-Sébastien Merette qui me remplacera au poste de VP des compétititions de la Fédération québécoise d'ultimate. Notre réunion a eu lieu au stade olympique en présence de Marie-Hélène Audet.

La réunion a été très profitable. Nous avons discuté des thèmes les plus importants. Voici l'ordre du jour de la réunion :

  1. Objectifs de la réunion
  2. Comité compétition et le RECQ
  3. Équipes Québec (U19, U23?, hommes, femmes)
  4. Croissance de l'ultimate compétitif au Québec
  5. Création d'un circuit estival
  6. CQU7 + tournoi des champions
  7. CQU4 + CCQU4

Voici les photos du tableau vert qui rassemblaient nos refléxions sur chaque point.

En guise de procès verbal, voici un résumé sur certains des points discutés.

3. Équipes Québec

Quels seraient les objectifs d'une équipe Québec? Dans notre discussion, on a supposé que l'objectif serait de participer et gagner les Championnats du monde des nations (WUGC), mais d'autres objectifs pourraient être fixés tels qu'une participation et bonne performance aux Championnats de USA Ultimate.

Pour participer aux Championnats du monde des nations en 2016 ou 2020, il faut que les équipes Québec deviennent des équipes Canada. Il faut donc gagner les Championnats canadiens en 2015 ou 2019.

Or, si en 2011, la moyenne d'âge des joueurs d'Odyssée et Onyx (des équipes qui visaient des objectifs similaires) était autour de 30 ans, on voudrait diminuer cette moyenne d'âge d'équipe Québec progressivement vers 26 ans (supposons) en 2019. Qui sont les joueurs qui auront 26 ans en 2019? Ce sont les joueurs qui ont 19 ans en 2012. Ce sont les joueurs des équipes Québec junior d'aujourd'hui. Alors, la question devient : comment organiser les 7 prochaines années pour qu'une équipe Québec ayant une moyenne d'âge de 26 ans gagne les Championnats canadiens en 2019? Faut-il créer une équipe Québec U23 qui agira comme équipe de développement intermédiaire? Faut-il créer une équipe Québec qui rassemble les meilleurs joueurs et joueuses d'aujourd'hui, mais qui seront trop vieux en 2019? Faut-il créer un mixte des deux en ayant quelques joueurs qui partageront leur expérience aux plus jeunes?

4. Croissance de l'ultimate compétitif au Québec

En utilisant le vocabulaire du MELS qui considère les quatre sphères de la pratique sportive (Initiation, Récréation, Compétition, Excellence), nous avons discuté de l'état de l'ultimate compétitif au Québec. Nous avons souligné que le CQU4 constitue une porte d'entrée vers la sphère Compétition très efficace au Québec. En effet, une participation au CQU4 demande moins d'engagement à un joueur qu'une participation à des compétitions estivales dans une équipe de compétition. Dans le CQU4, il y a :

  • peu ou pas de pratique
  • alignements des équipes plus flexibles
  • possibilité de s'ajouter à une équipe à la dernière minute
  • moins de transport (on reste au Québec)
  • les équipes sont constamment à la recherche de joueurs(ses) remplaçants
  • les joueurs(ses) sont à la recherche d'équipes
  • beaucoup d'opportunités pour participer à son premier tournoi
  • beaucoup d'opportunités pour devenir mordu des tournois d'ultimate
  • beaucoup d'opportunités pour intégrer des nouveaux joueurs(ses) dans la sphère Compétition
  • beaucoup d'opportunités pour faire connaître les nouveaux et nouvelles prospects

Tous ces aspects font en sorte que le nombre de joueurs et joueuses participant à des compétitions d'ultimate au Québec durant au moins une fin de semaine dans l'année augmente significativement pendant l'hiver, beaucoup plus qu'à l'été en fait. C'est une saison morte très vivante! Aussi, le CQU4 est très utile aux équipes d'été, car il offre la possibilité aux nouveaux joueurs et joueuses de se faire voir et connaître et naturellement de se faire inviter dans les équipes de compétition d'été.

L'été, c'est différent :

  • les alignements sont stable et fixé en début d'été suite aux essais libres
  • demande plus d'engagement (deux pratiques par semaine)
  • est plus dispendueux (transport à Ottawa, Devens, Toronto, Championnats canadiens, etc.)

Il faut que ça change. Il faut que l'été soit autant que l'hiver une façon de s'initier à la sphère Compétition.

5. Création d'un circuit estival

Alors, la réflexion à poursuivre est la suivante : comment faire en sorte que l'été devienne, tout comme l'hiver au Québec, une saison remplie d'opportunités pour participer à un premier tournoi d'ultimate?

Une idée serait de créer un circuit québecois estival avec classement et tournoi de fin de saison. Cela a bien fonctionné pour l'hiver avec le CQU4... alors pourquoi pas l'été?

On ne doit pas tant ici s'adresser aux plus de 500 joueurs qui participent déjà dans des équipes de compétition, qui voyagent partout dans des tournois et qui s'organisent déjà des pratiques deux fois par semaine. Ils sont déjà bien servis par un réseau de compétitions qui s'adresse à eux et qui rempli bien et parfois trop le calendrier.

Il faut plutôt s'adresser à la couche suivante de joueurs et joueuses et leur offrir un réseau de compétitions estival québécois. Il faut commencer petit et il grandira peu à peu année après année tout comme le CQU4 a grandit peu à peu années après années.

À la communauté québécoise de poursuivre la réflexion...

Varia

Quelques autres idées et défis pour la prochaine année:

  • Valorisation de l'esprit sportif dans le (Circuit québécois d'ultimate 4 contre 4) CQU4. Le côté compétitif est déjà bien valorisé, comment faire en sorte que les équipes ne négligent pas l'esprit sportif?
  • Comprendre les besoins des équipes 33 à 70 souvent sous-représentées dans les comités et entourages de la FQU. Sondage, invitation à des rencontres ou trouver d'autres moyens?
  • Mettre des pressions sur Ultimate Canada pour qu'ils reconnaissent un représentant du Regroupement des équipes compétitives du Québec (RECQ) choisi par le RECQ sur leur comité de compétition plutôt qu'un membre élu antidémocratiquement par UC supposé de représenter le Québec sans jamais le consulter.
  • Vers un CCQU4 régional. Le CCQU4 organisé en avril regroupe les meilleures équipes du Québec (division AAA + AA depuis 2012). Dans les prochaines années, on pourra voir l'organisation de CCQU4 régionaux. Par exemple, les 16 meilleures équipes du Bas-St-Laurent pourraient être invitées à participer à un CCQU4-bas-du-fleuve organisé dans la région en question.
Read and Post Comments

Plus de 150 questions webwork traduites en français

28 août 2012 | Catégories: webwork | View Comments

À l'automne 2011, j'ai donné le cours MAT1112 - Calcul 1 à l'Université du Québec à Montréal dont le contenu ressemble à un cours de Calcul 3 du cégep. J'avais utilisé WebWork et j'avais traduit plus de 150 questions en français. Les questions que j'ai traduites sont maintenant disponibles dans le fichier suivant:

webwork_french_problems.tar.gz

Les questions étaient divisées selon 10 chapitres. Les fichiers de définition .def pour chacun des chapitres sont disponibles ici:

Webwork-150-problemes-traduits

Les fichiers .def indiquent que les questions sont dans le répertoire racine local/Library. Vous devrez possiblement modifier ce répertoire racine pour chaque problème pour refléter l'endroit où vous avez placé les problèmes .pg contenu dans le .tar.gz ci-haut.

Éventuellement, ces problèmes seront centralisés dans une banque de problème en français et disponible dans Webwork.

Read and Post Comments

« Previous Page -- Next Page »