Blogue

Conférence sur les pavages

27 juin 2016 | Catégories: math | View Comments

Récemment, j'ai manqué quelques entraînements d'ultimate à Liège, car je participais à une conférence sur les pavages en France. "Les pavages?" me demande Maïté qui vient de commencer des travaux dans sa nouvelle maison. Et oui, les pavages! Mais pourquoi s'intéresser aux pavages?

Les pavages sont utiles en chimie et en physique, car ils permettent de modéliser mathématiquement le placement des atomes et molécules dans l'espace. Dans un cristal, les atomes sont placés de manière périodique comme la plupart des pavages utilisés dans les salles de bain de nos maisons.

Dans les années 80, Daniel Schechtman, un chercheur en chimie, a découvert des cristaux qui n'ont pas de structure périodique. Au début et pendant plusieurs années, ses collègues ne l'ont pas cru. Il a finalement obtenu le prix Nobel de Chimie en 2011 pour sa découverte.

Or on connaissait depuis les années 70 des pavages apériodique du plan. Les plus connus sont les pavages de Penrose qui ont plusieurs variantes. Avec la découverte des quasi-cristaux, les pavages apériodiques ont continué de susciter l'intérêt des chercheurs jusqu'à aujourd'hui...

Quelques liens:

Read and Post Comments

Réponse à une question de Christian Lemay

02 avril 2016 | Catégories: math | View Comments

Mon ami Christian Lemay, créateur de jeux de sociétés, a récemment posé la question suivante:

Amis mathématiciens...
J'ai 6 critères (1-2-3-4-5-6).
Les 3 premiers critères ont trois "variantes", "possibilités", "déclinaisons" (?)
Les 3 derniers ont 4 variantes.

Je veux savoir j'ai combien de combinaisons possibles, sachant que toutes
les combinaisons doivent avoir au minimum 2 différences et qu'un même
attribut soit partagé par au moins 3 personnages. Quelqu'un peut m'aider à
trouver la formule?

J'ai écrit le code suivant:

import itertools
from collections import Counter
L3 = range(3)
L4 = range(4)
S = set(itertools.product(L3,L3,L3,L4,L4,L4))
def distance(x,y):
    return sum(1 for a,b in zip(x,y) if a!=b)
def distance1_voisins(x):
    return [s for s in S if distance(x,s) == 1]
def trouve_ce_que_christian_veut():
    possible = copy(S)
    A = set()
    while possible:
        a = choice(list(possible))
        possible.remove(a)
        A.add(a)
        voisins = distance1_voisins(a)
        possible.difference_update(voisins)
    return A
def verifie(A):
    print "Nombre de sommets:", len(A)
    L = [distance(a,b) for a,b in itertools.product(A, repeat=2) if a!=b]
    print "Distance entre paires de sommets distincts:"
    print Counter(L)
    print "Nombre de combinaisons partageant le même attribut:"
    for i in range(6):
        print Counter(s[i] for s in A)

Il y a 1728 possiblités. Elles sont représentées dans l'ensemble S:

sage: 4^3*3^3
1728
sage: len(S)
1728

Ma méthode choisit un élément aléatoire de l'ensemble S puis élimine toutes les possibilités qui ont une seule différence avec cet élément choisi. Puis, on refait jusqu'à ce qu'il ne reste plus possibilités. Comme la méthode est aléatoire, le résultat n'est pas toujours le même. En gros, ça varie entre 284 et 297:

sage: A = trouve_ce_que_christian_veut()
sage: len(A)
284
sage: A = trouve_ce_que_christian_veut()
sage: len(A)
288
sage: A = trouve_ce_que_christian_veut()
sage: len(A)
291

En voici un où je teste les contraintes données par Christian:

sage: A = trouve_ce_que_christian_veut()
sage: len(A)
296
sage: verifie(A)
Nombre de sommets: 296
Distance entre paires de sommets distincts:
Counter({4: 28928, 5: 27188, 3: 14268, 6: 10972, 2: 5964})
Nombre de combinaisons partageant le même attribut:
Counter({1: 101, 0: 98, 2: 97})
Counter({2: 100, 0: 99, 1: 97})
Counter({1: 104, 0: 97, 2: 95})
Counter({3: 77, 1: 74, 0: 73, 2: 72})
Counter({3: 80, 2: 75, 1: 71, 0: 70})
Counter({1: 76, 3: 76, 2: 73, 0: 71})

On remarque que le deuxième critère est automatiquement vérifié comme au moins environ 70 possibilités partagent le même attribut.

J'imagine que la motivation de Christian est d'obtenir un tel ensemble. Alors, voici. Les éléments de l'ensemble A de 296 éléments ci-haut sont:

sage: A
{(0, 0, 0, 0, 2, 2),
 (0, 0, 0, 0, 3, 1),
 (0, 0, 0, 1, 0, 3),
 (0, 0, 0, 1, 2, 1),
 (0, 0, 0, 1, 3, 0),
 (0, 0, 0, 2, 0, 1),
 (0, 0, 0, 2, 1, 3),
 (0, 0, 0, 2, 2, 0),
 (0, 0, 0, 3, 0, 0),
 (0, 0, 0, 3, 1, 2),
 (0, 0, 0, 3, 2, 3),
 (0, 0, 1, 0, 0, 2),
 (0, 0, 1, 0, 1, 3),
 (0, 0, 1, 0, 3, 0),
 (0, 0, 1, 1, 1, 2),
 (0, 0, 1, 1, 2, 3),
 (0, 0, 1, 1, 3, 1),
 (0, 0, 1, 2, 0, 3),
 (0, 0, 1, 2, 1, 1),
 (0, 0, 1, 3, 1, 0),
 (0, 0, 1, 3, 2, 1),
 (0, 0, 1, 3, 3, 3),
 (0, 0, 2, 0, 0, 0),
 (0, 0, 2, 0, 1, 2),
 (0, 0, 2, 0, 2, 1),
 (0, 0, 2, 0, 3, 3),
 (0, 0, 2, 1, 1, 1),
 (0, 0, 2, 1, 2, 2),
 (0, 0, 2, 2, 1, 0),
 (0, 0, 2, 2, 2, 3),
 (0, 0, 2, 3, 0, 2),
 (0, 0, 2, 3, 1, 3),
 (0, 1, 0, 0, 0, 1),
 (0, 1, 0, 0, 1, 2),
 (0, 1, 0, 0, 2, 3),
 (0, 1, 0, 1, 1, 0),
 (0, 1, 0, 1, 2, 2),
 (0, 1, 0, 1, 3, 1),
 (0, 1, 0, 2, 0, 3),
 (0, 1, 0, 2, 1, 1),
 (0, 1, 0, 2, 3, 0),
 (0, 1, 0, 3, 1, 3),
 (0, 1, 0, 3, 2, 1),
 (0, 1, 0, 3, 3, 2),
 (0, 1, 1, 0, 0, 3),
 (0, 1, 1, 0, 1, 0),
 (0, 1, 1, 0, 2, 2),
 (0, 1, 1, 1, 0, 0),
 (0, 1, 1, 1, 1, 1),
 (0, 1, 1, 1, 3, 3),
 (0, 1, 1, 2, 2, 0),
 (0, 1, 1, 2, 3, 2),
 (0, 1, 1, 3, 0, 2),
 (0, 1, 1, 3, 2, 3),
 (0, 1, 2, 0, 1, 3),
 (0, 1, 2, 1, 0, 3),
 (0, 1, 2, 1, 2, 1),
 (0, 1, 2, 1, 3, 2),
 (0, 1, 2, 2, 0, 1),
 (0, 1, 2, 2, 1, 2),
 (0, 1, 2, 2, 3, 3),
 (0, 1, 2, 3, 2, 0),
 (0, 1, 2, 3, 3, 1),
 (0, 2, 0, 0, 1, 3),
 (0, 2, 0, 0, 2, 1),
 (0, 2, 0, 0, 3, 0),
 (0, 2, 0, 1, 1, 2),
 (0, 2, 0, 1, 2, 3),
 (0, 2, 0, 2, 0, 0),
 (0, 2, 0, 2, 3, 1),
 (0, 2, 0, 3, 0, 1),
 (0, 2, 0, 3, 2, 0),
 (0, 2, 0, 3, 3, 3),
 (0, 2, 1, 0, 0, 0),
 (0, 2, 1, 0, 1, 2),
 (0, 2, 1, 0, 3, 3),
 (0, 2, 1, 1, 0, 2),
 (0, 2, 1, 1, 1, 0),
 (0, 2, 1, 1, 2, 1),
 (0, 2, 1, 2, 0, 1),
 (0, 2, 1, 2, 1, 3),
 (0, 2, 1, 2, 2, 2),
 (0, 2, 1, 2, 3, 0),
 (0, 2, 1, 3, 0, 3),
 (0, 2, 1, 3, 1, 1),
 (0, 2, 1, 3, 3, 2),
 (0, 2, 2, 0, 0, 2),
 (0, 2, 2, 0, 1, 0),
 (0, 2, 2, 0, 2, 3),
 (0, 2, 2, 0, 3, 1),
 (0, 2, 2, 1, 0, 1),
 (0, 2, 2, 1, 2, 0),
 (0, 2, 2, 1, 3, 3),
 (0, 2, 2, 2, 0, 3),
 (0, 2, 2, 2, 2, 1),
 (0, 2, 2, 2, 3, 2),
 (0, 2, 2, 3, 1, 2),
 (0, 2, 2, 3, 3, 0),
 (1, 0, 0, 0, 0, 0),
 (1, 0, 0, 0, 2, 1),
 (1, 0, 0, 0, 3, 2),
 (1, 0, 0, 1, 1, 2),
 (1, 0, 0, 1, 2, 0),
 (1, 0, 0, 1, 3, 3),
 (1, 0, 0, 2, 0, 2),
 (1, 0, 0, 2, 1, 1),
 (1, 0, 0, 2, 2, 3),
 (1, 0, 0, 3, 1, 3),
 (1, 0, 0, 3, 2, 2),
 (1, 0, 0, 3, 3, 1),
 (1, 0, 1, 0, 0, 3),
 (1, 0, 1, 0, 2, 0),
 (1, 0, 1, 0, 3, 1),
 (1, 0, 1, 1, 0, 1),
 (1, 0, 1, 1, 1, 3),
 (1, 0, 1, 1, 2, 2),
 (1, 0, 1, 1, 3, 0),
 (1, 0, 1, 2, 0, 0),
 (1, 0, 1, 2, 2, 1),
 (1, 0, 1, 2, 3, 3),
 (1, 0, 1, 3, 1, 2),
 (1, 0, 1, 3, 2, 3),
 (1, 0, 2, 0, 0, 1),
 (1, 0, 2, 0, 1, 3),
 (1, 0, 2, 1, 1, 0),
 (1, 0, 2, 1, 2, 1),
 (1, 0, 2, 2, 2, 2),
 (1, 0, 2, 2, 3, 0),
 (1, 0, 2, 3, 0, 3),
 (1, 0, 2, 3, 1, 1),
 (1, 0, 2, 3, 2, 0),
 (1, 0, 2, 3, 3, 2),
 (1, 1, 0, 0, 0, 3),
 (1, 1, 0, 0, 1, 1),
 (1, 1, 0, 0, 2, 2),
 (1, 1, 0, 0, 3, 0),
 (1, 1, 0, 1, 0, 0),
 (1, 1, 0, 1, 2, 3),
 (1, 1, 0, 1, 3, 2),
 (1, 1, 0, 2, 1, 0),
 (1, 1, 0, 2, 2, 1),
 (1, 1, 0, 2, 3, 3),
 (1, 1, 0, 3, 0, 1),
 (1, 1, 1, 0, 0, 2),
 (1, 1, 1, 0, 2, 1),
 (1, 1, 1, 0, 3, 3),
 (1, 1, 1, 1, 1, 0),
 (1, 1, 1, 2, 1, 3),
 (1, 1, 1, 2, 2, 2),
 (1, 1, 1, 2, 3, 1),
 (1, 1, 1, 3, 0, 3),
 (1, 1, 1, 3, 1, 1),
 (1, 1, 1, 3, 2, 0),
 (1, 1, 1, 3, 3, 2),
 (1, 1, 2, 0, 0, 0),
 (1, 1, 2, 0, 3, 1),
 (1, 1, 2, 1, 0, 2),
 (1, 1, 2, 1, 2, 0),
 (1, 1, 2, 1, 3, 3),
 (1, 1, 2, 2, 0, 3),
 (1, 1, 2, 2, 1, 1),
 (1, 1, 2, 2, 3, 2),
 (1, 1, 2, 3, 1, 2),
 (1, 1, 2, 3, 2, 3),
 (1, 1, 2, 3, 3, 0),
 (1, 2, 0, 0, 0, 2),
 (1, 2, 0, 0, 3, 1),
 (1, 2, 0, 1, 1, 0),
 (1, 2, 0, 1, 2, 1),
 (1, 2, 0, 2, 0, 3),
 (1, 2, 0, 2, 2, 2),
 (1, 2, 0, 2, 3, 0),
 (1, 2, 0, 3, 0, 0),
 (1, 2, 0, 3, 1, 1),
 (1, 2, 0, 3, 2, 3),
 (1, 2, 0, 3, 3, 2),
 (1, 2, 1, 0, 1, 1),
 (1, 2, 1, 0, 2, 3),
 (1, 2, 1, 0, 3, 0),
 (1, 2, 1, 1, 1, 2),
 (1, 2, 1, 1, 2, 0),
 (1, 2, 1, 1, 3, 3),
 (1, 2, 1, 2, 3, 2),
 (1, 2, 1, 3, 0, 2),
 (1, 2, 1, 3, 1, 3),
 (1, 2, 1, 3, 3, 1),
 (1, 2, 2, 0, 1, 2),
 (1, 2, 2, 0, 2, 1),
 (1, 2, 2, 1, 0, 3),
 (1, 2, 2, 1, 1, 1),
 (1, 2, 2, 1, 3, 2),
 (1, 2, 2, 2, 0, 2),
 (1, 2, 2, 2, 1, 3),
 (1, 2, 2, 2, 2, 0),
 (1, 2, 2, 2, 3, 1),
 (1, 2, 2, 3, 0, 1),
 (1, 2, 2, 3, 1, 0),
 (1, 2, 2, 3, 2, 2),
 (1, 2, 2, 3, 3, 3),
 (2, 0, 0, 0, 0, 1),
 (2, 0, 0, 0, 1, 0),
 (2, 0, 0, 0, 2, 3),
 (2, 0, 0, 1, 0, 0),
 (2, 0, 0, 1, 1, 3),
 (2, 0, 0, 1, 2, 2),
 (2, 0, 0, 1, 3, 1),
 (2, 0, 0, 2, 2, 1),
 (2, 0, 0, 2, 3, 2),
 (2, 0, 0, 3, 3, 0),
 (2, 0, 1, 0, 3, 3),
 (2, 0, 1, 1, 0, 2),
 (2, 0, 1, 1, 1, 0),
 (2, 0, 1, 1, 2, 1),
 (2, 0, 1, 2, 0, 1),
 (2, 0, 1, 2, 1, 3),
 (2, 0, 1, 2, 2, 2),
 (2, 0, 1, 2, 3, 0),
 (2, 0, 1, 3, 0, 3),
 (2, 0, 1, 3, 1, 1),
 (2, 0, 1, 3, 2, 0),
 (2, 0, 1, 3, 3, 2),
 (2, 0, 2, 0, 1, 1),
 (2, 0, 2, 0, 2, 0),
 (2, 0, 2, 0, 3, 2),
 (2, 0, 2, 1, 0, 1),
 (2, 0, 2, 1, 3, 0),
 (2, 0, 2, 2, 0, 3),
 (2, 0, 2, 2, 1, 2),
 (2, 0, 2, 2, 3, 1),
 (2, 0, 2, 3, 0, 0),
 (2, 0, 2, 3, 2, 1),
 (2, 0, 2, 3, 3, 3),
 (2, 1, 0, 0, 2, 1),
 (2, 1, 0, 0, 3, 2),
 (2, 1, 0, 1, 0, 3),
 (2, 1, 0, 1, 1, 1),
 (2, 1, 0, 1, 3, 0),
 (2, 1, 0, 2, 0, 0),
 (2, 1, 0, 2, 1, 3),
 (2, 1, 0, 2, 2, 2),
 (2, 1, 0, 2, 3, 1),
 (2, 1, 0, 3, 0, 2),
 (2, 1, 0, 3, 2, 0),
 (2, 1, 0, 3, 3, 3),
 (2, 1, 1, 0, 0, 0),
 (2, 1, 1, 0, 1, 2),
 (2, 1, 1, 0, 2, 3),
 (2, 1, 1, 0, 3, 1),
 (2, 1, 1, 1, 0, 1),
 (2, 1, 1, 1, 2, 0),
 (2, 1, 1, 1, 3, 2),
 (2, 1, 1, 2, 0, 3),
 (2, 1, 1, 2, 1, 1),
 (2, 1, 1, 3, 1, 3),
 (2, 1, 1, 3, 2, 1),
 (2, 1, 1, 3, 3, 0),
 (2, 1, 2, 0, 0, 3),
 (2, 1, 2, 0, 3, 0),
 (2, 1, 2, 1, 0, 0),
 (2, 1, 2, 1, 2, 3),
 (2, 1, 2, 2, 0, 2),
 (2, 1, 2, 2, 2, 0),
 (2, 1, 2, 3, 0, 1),
 (2, 1, 2, 3, 1, 0),
 (2, 1, 2, 3, 2, 2),
 (2, 2, 0, 0, 1, 2),
 (2, 2, 0, 0, 2, 0),
 (2, 2, 0, 0, 3, 3),
 (2, 2, 0, 1, 0, 1),
 (2, 2, 0, 1, 3, 2),
 (2, 2, 0, 3, 1, 3),
 (2, 2, 0, 3, 2, 2),
 (2, 2, 0, 3, 3, 1),
 (2, 2, 1, 0, 0, 1),
 (2, 2, 1, 0, 3, 2),
 (2, 2, 1, 1, 0, 3),
 (2, 2, 1, 1, 1, 1),
 (2, 2, 1, 1, 2, 2),
 (2, 2, 1, 1, 3, 0),
 (2, 2, 1, 2, 0, 2),
 (2, 2, 1, 2, 1, 0),
 (2, 2, 1, 2, 2, 3),
 (2, 2, 1, 2, 3, 1),
 (2, 2, 1, 3, 0, 0),
 (2, 2, 1, 3, 1, 2),
 (2, 2, 1, 3, 3, 3),
 (2, 2, 2, 0, 0, 0),
 (2, 2, 2, 0, 1, 3),
 (2, 2, 2, 0, 2, 2),
 (2, 2, 2, 1, 1, 2),
 (2, 2, 2, 1, 3, 1),
 (2, 2, 2, 2, 1, 1),
 (2, 2, 2, 2, 3, 0),
 (2, 2, 2, 3, 0, 3),
 (2, 2, 2, 3, 2, 0),
 (2, 2, 2, 3, 3, 2)}

Je suis d'accord avec Philippe Beaudoin qui répond sur Facebook:

De manière intéressante, c'est la même question que:, combien peut-on placer de "tour" (la pièce d'échec) sur un hyper-échiquier de 3x3x3x4x4x4 sans qu'aucune des pièces ne se menacent.

Il conjecture que la réponse optimale est 432:

En fait, je suis presque certain que la réponse est 432 (3x3x3x4x4).

Peut-être. Je n'ai pas réfléchi plus à la question. Mais, je ne vois pas comment la formule proposée par Philippe généralise la formule connue pour l'équiquier 8x8...

Read and Post Comments

Marcher de la crèche du Sart Tilman à mon travail

03 mars 2016 | Catégories: urbanisme | View Comments

Voici un texte que j'ai transmis à la revue d'urbanisme Dérivations pour son deuxième numéro au sujet du campus du Sart Tilman de l'Université de Liège.

En janvier 2015, j'ai commencé un postdoctorat à l'Université de Liège. Peu après, ma femme et mon fils m'ont rejoint. Nous avons choisis d'habiter au centre-ville de Liège, car nous aimons la vie sans voiture et la proximité des services. Il faut dire qu'il n'y a pas tant de terrains de jeu pour enfants à proximité du centre-ville, mais on a trouvé un modeste parc accueillant (avec un cercle de cacas de chiens à son entrée) qui nous convient.

À mon arrivée, il y avait une liste d'attente pour les crèches du centre-ville et quelques places à la crèche du Sart Tilman. Nous avons donc inscrit mon garçon à la crèche du Sart-Tilman avant qu'il commence l'école. À ce moment, mon algorithme pour me rendre au travail était semble-t-il unique pour deux raisons: (1) traverser le centre-ville à vélo via le Ravel et vérouiller le vélo au pont de la Fragnée et (2) prendre le 48 avec un enfant. En effet, on m'a souvent déconseillé de laisser un vélo à un tel endroit ou encore de m'acheter une voiture maintenant que je suis papa. Bon, pour moi, ça restait quand même la meilleure solution au problème de transport vers le campus Sart Tilman.

Je déposais donc mon fils à la crèche. Il me restait donc à me rendre de la crèche à mon travail. Comme ce n'était pas si loin, je faisais ce trajet à pied. N'importe où dans le monde, on serait porté à croire que marcher de la crèche d'un campus universitaire à son travail sur le même campus est normal et qu'un trajet raisonable pour le faire à pied devrait exister. Les campus à l'américaine sont toujours plein de trajets piétons que l'on reconnaît dans la pelouse usée et qui indiquent toujours le plus court chemin: la diagonale. À la recherche de cette diagonale, je marchais sur la Rue du Sart-Tilman jusqu'au Monument aux héros des combats de la nuit du 5 au 6 août 1914 que peu de gens connaissent. C'est à partir de là que tout se gâte et que le petit chemin le plus court propre aux campus universitaires à l'américaine n'existe plus.

La première fois, muni de l'application Open Street Map sur mon téléphone, j'avais fait l'erreur de contourner l'Institut de Géographie par la rue du Clos Mercator. J'étais abouti sur les bretelles d'autoroute. Chemin désagréable et boueux. À ne pas refaire.

La deuxième fois, j'ai marché dans la pelouse entre l'Institut de Géographie et le Boulevard de Colonster jusqu'au rond point au centre du campus. Ce rond-point n'est pas si désagréable pour les piétons. En effet, les voitures ralentissent à moins de 80 km/h à la vue d'un piéton et prennent leur distance pour s'assurer de rouler toujours à plus de 20 cm de ceux-ci.

J'ai pu faire ce trajet jusqu'aux périodes d'allergies du mois de juin. En effet, comme j'étais finalement le seul à passer par là à tous les jours, mes piétinements n'étaient pas suffisants pour prendre le dessus sur les plantes. À partir de ce moment-là, je marchais sur le Boulevard de Colonster. Il n'y a pas de trottoir à cet endroit, et le manque de visibilité causé par les plantes et le stationnement P11 font en sorte que les voitures ne roulent pas dans la voie de gauche à cet endroit à l'approche du rond point. Je me suis donc habitué aux voitures qui passent très proche des piétons là aussi et même aux conducteurs du bus 58 qui osent même faire des blagues en dirigeant l'autobus sur les piétons pour les éviter à la dernière seconde.

Depuis l'automne, je n'ai plus besoin de faire ce merveilleux trajet de la crèche à l'Institut de mathématiques, car mon fils a commencé à l'école en ville. Je profite maintenant du nouveau trajet piéton qui contourne le rond-point par le sud.

Read and Post Comments

unsupported operand parent for *, Matrix over number field, vector over symbolic ring

18 février 2016 | Catégories: sage | View Comments

Yesterday I received this email (in french):

Salut,
avec Thomas on a une question bête:

K.<x>=NumberField(x*x-x-1)

J'aimerais multiplier une matrice avec des coefficients en x par un vecteur
contenant des variables a et b.  Il dit "unsupported operand parent for *,
Matrix over number field, vector over symbolic ring"

Est ce grave ?

Here is my answer. Indeed, in Sage, symbolic variables can't multiply with elements in an Number Field in x:

sage: x = var('x')
sage: K.<x> = NumberField(x*x-x-1)
sage: a = var('a')
sage: a*x
Traceback (most recent call last)
...
TypeError: unsupported operand parent(s) for '*': 'Symbolic Ring' and
'Number Field in x with defining polynomial x^2 - x - 1'

But, we can define a polynomial ring with variables in a,b and coefficients in the NumberField. Then, we are able to multiply a with x:

sage: x = var('x')
sage: K.<x> = NumberField(x*x-x-1)
sage: K
Number Field in x with defining polynomial x^2 - x - 1
sage: R.<a,b> = K['a','b']
sage: R
Multivariate Polynomial Ring in a, b over Number Field in x with
defining polynomial x^2 - x - 1
sage: a*x
(x)*a

With two square brackets, we obtain powers series:

sage: R.<a,b> = K[['a','b']]
sage: R
Multivariate Power Series Ring in a, b over Number Field in x with
defining polynomial x^2 - x - 1
sage: a*x*b
(x)*a*b

It works with matrices:

sage: MS = MatrixSpace(R,2,2)
sage: MS
Full MatrixSpace of 2 by 2 dense matrices over Multivariate Power
Series Ring in a, b over Number Field in x with defining polynomial
x^2 - x - 1
sage: MS([0,a,b,x])
[  0   a]
[  b (x)]
sage: m1 = MS([0,a,b,x])
sage: m2 = MS([0,a+x,b*b+x,x*x])
sage: m1 + m2 * m1
[              (x)*b + a*b       (x + 1) + (x + 1)*a]
[                (x + 2)*b (3*x + 1) + (x)*a + a*b^2]
Read and Post Comments

Au sujet de la rue Frontenac à Lac-Mégantic

02 janvier 2016 | Catégories: urbanisme | View Comments

(En réaction à la lettre d’opinion Une fois encore de Paul Dostie, en page 4 de l’édition du 1er janvier 2016 de l'Écho de Frontenac. Cette réponse a été publiée le 7 janvier 2016 sur le site de l'Écho de Frontenac sous le titre choisi par le journal Difficile équilibre. Lire la réponse de Paul Dostie Prise 2 publiée le 14 janvier 2016.)

Cher Paulo,

Je comprends ton inquiétude. La rue Frontenac sera bientôt reconstruite et l'on voudrait si possible éviter de regretter les décisions qui sont prises aujourd'hui. Ton invitation à "apporter de l'eau au moulin" est légitime, mais pourquoi alors passe-t-elle sous silence la démarche qui a eu lieu à Lac-Mégantic pour repenser le centre-ville (dont la rue Frontenac) à l'image de ses citoyens à l'époque d'un 21e siècle qui ne fait que commencer?

Je comprends aussi ton désespoir à trouver un équilibre entre les contraires. Tu voudrais éviter que "l'architecture projetée ressemble à du déjà vu", mais que la chaussée de la rue Frontenac soit large comme avant. Tu mentionnes la cession du boulevard des Vétérans à l'industrie touristique, alors qu'ironiquement tu cites l'avenue des Champs-Élysées comme modèle de rue large et belle. Selon Wikipédia, la qualification de "plus belle avenue du monde" des Champs-Élysées serait due à Achille Hermant et date de 1856. Or, les choses ont changé depuis 160 ans et on s'inquiète plutôt depuis plusieurs années d'une certaine "banalisation" des Champs avec des magasins que l'on retrouve, identiques, partout ailleurs dans le monde.

Même si c'est une ville qui comporte à peine 15 millions d'habitants de plus que Lac-Mégantic, je trouve que la référence à Paris est une occasion de mentionner des initiatives de développement durable que Paris a prises ces dernières années et continue de prendre.

Le parc Martin Luther King est un grand parc accessible depuis quelques années dans le 17e arrondissement et qui atteindra 10 hectares une fois terminé. Construit sur les anciens terrains d'une gare ferroviaire dans une optique de développement durable réussie, il déborde de citoyens qui profitent des multiples lieux pour faire du sport, faire jouer les enfants, profiter de la nature (étang, ruches, arbres, etc.) et faire changement des parcs à la Louis XIV.

Le processus de réinvention d'une ville par ses citoyens n'est pas unique à Lac-Mégantic: c'est l'air du temps. Et Paris dirigée par Anne Hidalgo, première femme maire de Paris se réinvente aussi. Son site web paris.fr héberge des ateliers de réflexion sur la co-construction de Paris. Un projet en cours s'intitule "Réinventons nos places !" (les rond-points géants de Paris s'appellent des Places) dont le but est d'apaiser l’espace public, rééquilibrer les usages au profit des piétons et des circulations douces. Bastille, Fête, Gambetta, Italie, Madeleine, Nation et Panthéon sont les sept premières places visées par la démarche de concertation citoyenne. Soyons certains que la chaussée sera bientôt beaucoup moins large pour les voitures... Soulignons aussi l'approbation par le Conseil de Paris en décembre 2015 du projet de piétonniser dès l'été 2016 les quais de la rive droite de la Seine sur une longueur de 3,3 km suite à une large consultation.

Pour ce qui est du stationnement, je conseille la lecture du texte Espace public et stationnement rédigé par l'association Rue de l'avenir. Ce document explique que l'espace utilisé par les stationnements peut avoir d'autres utilités plus utiles.

Sébastien Labbé

Read and Post Comments

« Previous Page -- Next Page »