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.
Thèse et soutenance
10 août 2012 | Catégories: Uncategorized | View CommentsLa version finale de ma thèse de doctorat intitulée Structure des pavages, droites discrètes 3D et combinatoire des mots est maintenant disponible dans la section Publications. Les diapositives de la soutenance le sont aussi dans la section Communications. La soutenance a eu lieu le 4 mai 2012 à l'Université du Québec à Montréal et des photos sont sur le site du LaCIM.
Calculer l'inverse d'une matrice rectangulaire
30 juillet 2012 | Catégories: math | View CommentsExiste-t-il des méthodes pour calculer l'inverse d'une matrice rectangulaire non carrée. Je me souviens qu'Ernest Monga nous avait fait travailler sur ce sujet dans un cours qu'il donnait à l'Université de Sherbrooke. Il a notamment donné une présentation Inverse généralisé d’une matrice quelconque – application à deux problèmes statistiques au camp 2011 de l'AMQ.
À l'aide de quelques conditions, il est possible de définir l'inverse d'une matrice rectangulaire de façon unique. Plus d'informations sont disponibles dans le livre Probabilités, analyse des données et statistique sur books.google.ca, sur Wikipédia Pseudo-inverse. Sur la page de wikipédia en anglais Moore-Penrose pseudoinverse, on trouve aussi une section Software libraries mentionnant que les librairies NumPy et SciPy peuvent calculer cette matrice pseudo-inverse.
sage: m = matrix(2, range(6)) sage: m [0 1 2] [3 4 5] sage: mm = numpy.matrix(m) sage: mm matrix([[0, 1, 2], [3, 4, 5]]) sage: mm.I matrix([[-0.77777778, 0.27777778], [-0.11111111, 0.11111111], [ 0.55555556, -0.05555556]]) sage: mm * mm.I matrix([[ 1.00000000e+00, -1.38777878e-16], [ 3.10862447e-15, 1.00000000e+00]]) sage: mm.I * mm matrix([[ 0.83333333, 0.33333333, -0.16666667], [ 0.33333333, 0.33333333, 0.33333333], [-0.16666667, 0.33333333, 0.83333333]])
Alors que la fonction Moore-Penrose Matrix Inverse est présente dans Mathematica, je crois qu'elle n'est pas encore présente dans Sage sans passer par NumPy. Peut-être qu'une implémentation basée sur l'article Fast Computation of Moore-Penrose Inverse Matrices de Pierre Courrieu (2008) pourrait être effectuée.
Mon préambule latex
04 juillet 2012 | Catégories: latex | View CommentsVoici le préambule latex que j'utilise souvent:
\documentclass[12pt]{article} \usepackage{amsmath} \usepackage{amsfonts} \usepackage{latexsym} \usepackage{graphicx} \usepackage{amssymb} \usepackage{amsthm} \usepackage[margin=2cm]{geometry} \usepackage{url} \usepackage{color} \usepackage{enumerate} \usepackage[shortlabels]{enumitem} %pour commencer les enumerations a des nombres differents \usepackage[small]{caption} \usepackage{cite}
Pour des fichiers en français, j'utilise les packages suivants:
\usepackage[T1]{fontenc} % Hyphénation des mots accentués \usepackage{lmodern} % Polices vectorielles \usepackage[french]{babel} % Vocabulaire en francais \usepackage[utf8]{inputenc} % Codage UNICODE (UTF-8)
My implementation of André's Joyal Bijection using Sage
12 mai 2012 | Catégories: sage | View CommentsDoron Zeilbeger made a talk last Friday at CRM in Montreal during Sage Days 38 about \(n^{n-2}\). At the end of the talk, he propoed a contest to code Joyal's Bijection which relates double rooted trees on \(n\) vertices and endofunctions on \(n\) elements. I wrote an implementation in Sage. My code is available here : joyal_bijection.sage. It will certainly not win for the most brief code, but it is object oriented, documented, reusable, testable and allows introspection.
Example
First, we must load the file:
sage: load joyal_bijection.sage
Creation of an endofunction:
sage: L = [7, 0, 6, 1, 4, 7, 2, 1, 5] sage: f = Endofunction(L) sage: f Endofunction: [0..8] -> [7, 0, 6, 1, 4, 7, 2, 1, 5]
Creation of a double rooted tree:
sage: L = [(0,6),(2,1),(3,1),(4,2),(5,7),(6,4),(7,0),(8,5)] sage: D = DoubleRootedTree(L, 1, 7) sage: D Double rooted tree: Edges: [(0, 6), (2, 1), (3, 1), (4, 2), (5, 7), (6, 4), (7, 0), (8, 5)] RootA: 1 RootB: 7
From the endofunction f, we get a double rooted tree:
sage: f.to_double_rooted_tree() Double rooted tree: Edges: [(0, 6), (2, 1), (3, 1), (4, 2), (5, 7), (6, 4), (7, 0), (8, 5)] RootA: 1 RootB: 7
From the double rooted tree D, we get an endofunction:
sage: D.to_endofunction() Endofunction: [0..8] -> [7, 0, 6, 1, 4, 7, 2, 1, 5]
In fact, we get D from f and vice versa:
sage: D == f.to_double_rooted_tree() True sage: f == D.to_endofunction() True
Timing
On my machine, it takes 2.23 seconds to transform a random endofunction on \(\{0, 1, \cdots, 9999\}\) to a double rooted tree and then back to the endofunction and make sure the result is OK:
sage: E = Endofunctions(10000) sage: f = E.random_element() sage: time f == f.to_double_rooted_tree().to_endofunction() True Time: CPU 2.23 s, Wall: 2.24 s
Comments
I am using the Sage graph library (Networkx) to find the cycles of a graph and to find the shortest path between two vertices. It would be interesting to compare the timing when using the zen library which is lot faster then networkx.
« Previous Page -- Next Page »