lundi 3 décembre 2012
Vive Github Pages!
Ce blogue est déménagé à l'adresse loicseguin.github.com
Pour faire une histoire courte, je n'ai pas eu le temps d'écrire des articles de blogue depuis belle lurette, et j'ai tenté de vivre avec moins de Google. Dans le futur, les rares articles de blogue seront envoyés sur mon nouveau blogue hébergé à l'aide du service Github Pages.
mercredi 21 décembre 2011
Dictionnaire français pour Vim
Vim possède un correcteur d'orthographe. On peut l'activer avec
:set spell
puis on passe à l'erreur suivante avec ]s.
Par défaut, seuls des dictionnaires anglais sont fournis avec MacVim. Installer un dictionnaire français se fait automatiquement si on définit la variable spelllang pour le français :
:set spelllang=fr
Ensuite, il ne reste plus qu'à activer la correction automatique et à regarder MacVim se connecter à un serveur ftp pour y télécharger les fichiers nécessaires.
Information trouvée dans les archives de comp.editors sur usenet (http://newsgroups.derkeiler.com/Archive/Comp/comp.editors/2006-04/msg00241.html).
Information trouvée dans les archives de comp.editors sur usenet (http://newsgroups.derkeiler.com/Archive/Comp/comp.editors/2006-04/msg00241.html).
Catégories :
informatique
dimanche 13 juin 2010
64 bits Python installation on MacOS X Snow Leopard
N.B. : Pour une raison mystérieuse, j'ai rédigé cet article en anglais. Désolé pour ceux qui ne lisent pas l'anglais. J'essaierai de ne pas recommencer.
Here is how I installed Python 2.6.5 on my machine. Here is what I get at the end:
- Python 2.6.5 with both 32 bits and 64 bits executables
- Virtual environments with virtualenv
- 64 bits NumPy, SciPy and Matplotlib
- A bunch of other useful packages
- The power of Python
I based myself mostly on this post by Jesse Noller and this one by HyperJeff. Unfortunately, the instructions in these posts were not completely sufficient for me and I had to fiddle around a lot to get the complete setup I was looking for.
Python
Download the latest Python source code and unpack it
$ curl -O http://www.python.org/ftp/python/2.6.5/Python-2.6.5.tar.bz2
$ tar jxvf Python-2.6.5.tar.bz2
To build an installer for Snow Leopard, we need to tweak one line of the
script.
$ cd Python-2.6.5/Mac/BuildScript/
$ mvim build-installer.py
Here, I used MacVIM to edit the file. Use whatever editor you like. At
line 78, replace
SDKPATH = "/Developer/SDKs/MacOSX10.4u.sdk"
by
SDKPATH = "/Developer/SDKs/MacOSX10.6.sdk"
And around line 139 replace
if DEPTARGET < '10.5':
by
if DEPTARGET < '10.7':
Before running the script, I had to create the directory where
third-party sources would be downloaded.
$ mkdir ~/Universal/other-sources
All you have to do, is to run the script:
$ ./build-installer.py --dep-target=10.6 --universal-archs=intel
This will build an installer for 64 bits Python 2.6.5 with support for
readline. The disk image containing the installer is located in
/tmp/_py/diskimage/. Just mount the dmg file and install Python by double clicking on the pkg file.
By default, python is a symlink to the 32-bit version, and so is pythonw.
To change that, simply modify the symlinks in
/Library/Frameworks/Python.framework/Versions/2.6/bin/ as follow:
$ cd /Library/Frameworks/Python.framework/Versions/2.6/bin/
$ sudo rm python python2.6 pythonw pythonw2.6
$ sudo ln -s python2.6-64 python
$ sudo ln -s python2.6-64 python2.6
$ sudo ln -s pythonw2.6-64 pythonw
$ sudo ln -s pythonw2.6-64 pythonw2.6
Virtualenv
This nice utility allows one to have many different python environment
each of which is independent. You can then install a bunch of packages
in an environment. If you need a fresh environment, you then just create
a new virtualenv. You are free to switch from one virtualenv to another.
Start by installing easy_install and pip.
$ curl -O http://peak.telecommunity.com/dist/ez_setup.py
$ sudo python ez_setup.py
$ curl -O http://pypi.python.org/packages/source/p/pip/pip-0.7.2.tar.gz
$ tar zxvf pip-0.7.2.tar.gz
$ cd pip-0.7.2
$ sudo python setup.py install
Then, move on to install virtualenv and a wrapper script.
$ sudo pip install virtualenv
$ sudo pip install virtualenvwrapper
Create a directory for you virtual environments.
$ mkdir -p ~/local/virtualenvs
Add the following to your ~/.bash_profile.
export WORKON_HOME=$HOME/local/virtualenvs
source /Library/Frameworks/Python.framework/Versions/2.6/bin/virtualenvwrapper.sh
workon default
Source the .bash_profile file.
$ . ~/.bash_profile
Finally, just create the default virtual environment.
$ mkvirtualenv default
Numpy and SciPy
These two are by far the most annoying (but also the most useful). They depend on a few libraries which are either required or enhance efficiency a lot.
Download and install gfortran.
$ curl -O http://r.research.att.com/gfortran-4.2.3.dmg
Download and install FFTW.
$ curl -O http://www.fftw.org/fftw-3.2.2.tar.gz
$ tar zxvf fftw-3.2.2.tar.gz
$ cd fftw-3.2.2
$ ./configure CC="gcc -arch i386 -arch x86_64" CXX="g++ -arch i386 -arch x86_64" CPP="gcc -E" CXXCPP="g++ -E"
$ make
$ sudo make install
Download and install UMFPACK.
$ curl -O http://www.cise.ufl.edu/research/sparse/umfpack/UMFPACK-5.5.0.tar.gz
$ tar zxvf http://www.cise.ufl.edu/research/sparse/umfpack/UMFPACK-5.5.0.tar.gz
$ curl -O http://www.cise.ufl.edu/research/sparse/UFconfig/UFconfig-3.5.0.tar.gz
$ tar zxvf http://www.cise.ufl.edu/research/sparse/UFconfig/UFconfig-3.5.0.tar.gz
$ curl -O http://www.cise.ufl.edu/research/sparse/amd/AMD-2.2.1.tar.gz
$ tar zxvf http://www.cise.ufl.edu/research/sparse/amd/AMD-2.2.1.tar.gz
In the file UFconfig/UFconfig.mk, uncommment lines 284 through 287 and add
-DNCHOLMOD to the UMFPACK_CONFIG variable on line 154.
F77 = gfortran
CFLAGS = -O3 -fno-common -no-cpp-precomp -fexceptions
BLAS = -framework Accelerate
LAPACK = -framework Accelerate
The Makefile for UFconfig needs to be changed at line 28 in the install
target. There is a mistake on the location of the library. The line should
read
$(CP) libufconfig.a $(INSTALL_LIB)/libufconfig.$(VERSION).a
Then, build and install the various parts.
$ cd UMFPACK
$ make library
$ sudo make install
$ cd ../AMD
$ sudo make install
$ cd ../UFconfig
$ make
$ sudo make install
This will build UFMPACK, AMD and UFconfig and install the headers and
libraries in /usr/local.
Download NumPy from the SourceForge download page
http://sourceforge.net/projects/numpy/files/NumPy/1.4.1/numpy-1.4.1.tar.gz/download and then install it.
$ tar zxvf numpy-1.4.1.tar.gz
$ cd numpy-1.4.1
$ python setup.py build
$ python setup.py install
Download SciPy from the SourceForge download page
http://sourceforge.net/projects/scipy/files/scipy/0.8.0b1/scipy-0.8.0b1.tar.gz/download and then install it.
$ tar zxvf scipy-0.8.0b1.tar.gz
$ cd scipy-0.8.0b1
$ python setup.py build
$ python setup.py install
Matplotlib
Download from http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-0.99.3/matplotlib-0.99.3.tar.gz/download and untar.
$ tar zxvf matplotlib-0.99.3.tar.gz
$ cd matplotlib-0.99.3
The file make.osx is what is used now. However, as of this writing, using this file as is does not work. First, apply this patch
http://sourceforge.net/tracker/download.php?group_id=80706&atid=560722&file_id=369204&aid=2981126
and then change the zlib version in make.osx to 1.2.5. Then, run
$ PREFIX=~/local/virtualenvs/default make -f make.osx fetch deps mpl_build mpl_install
Other useful packages
$ pip install mercurial
$ pip install ipython
$ pip install networkx
$ pip install nose
$ pip install sphinx
$ pip install sympy
References
http://matplotlib.sourceforge.net/users/installing.html
http://blog.hyperjeff.net/?p=160
http://docs.python.org/install/index.html
http://cran.r-project.org/bin/macosx/tools/
http://mail.python.org/pipermail/pythonmac-sig/2009-May/021289.html
http://jessenoller.com/2009/03/16/so-you-want-to-use-python-on-the-mac/
Catégories :
informatique,
python
lundi 7 juin 2010
Consommation d'énergie et émission de gaz à effet de serre au Canada
En faisant quelques recherches sur Internet, je suis tombé sur des données relatives à la consommation d'énergie et à l'émission de GES par les foyers canadiens pour la période de 1990 à 2007. Ces données sont rendues publiques par l'Office de l'efficacité énergétique de Ressources naturelles Canada. Elles proviennent principalement de Statistique Canada.
Les données sont disponible sous la forme d'un document Excel (res_ca_1_e.xls). J'ai utilisé Python, Matplotlib et un module nommé xlrd pour visualiser les données. Python et Matplotlib n'ont probablement pas besoin de présentation. xlrd est un module qui permet d'extraire les information d'un fichier Excel à partir de Python. Une introduction à l'utilisation de xlrd est disponible sur scienceoss.com. Mon script Python est disponible ici.


Je dois avoué avoir été assez surpris du faible taux d'augmentation de la consommation d'électricité et des émissions de GES. Bien sûr, il est navrant qu'on parle d'augmentation alors que les objectifs du protocole de Kyoto étaient de réduire les émissions de GES par rapport à celles de 1990. Néanmoins, si l'on en croit ces données, la situation n'est pas si terrible au Canada.
Catégories :
environnement,
python
lundi 1 mars 2010
Spinify 2.2
Je viens tout juste de lancer la nouvelle version du logiciel de simulation numérique du modèle d'Ising Spinify. La version 2.2 comporte plusieurs corrections de bogues de même qu'une réécriture complète de l'interface en ligne de commande (CLI). Vous pouvez télécharger le programme sur bitbucket: spinify-2.2.tar.gz.
L'usager peut maintenant configurer tous les paramètres utilisés dans la simulation de même que dans la génération des graphes. Ces paramètres peuvent être spécifiés à la ligne de commande ou dans un fichier de configuration qui sera lu par le programme. Tous les détails sont disponibles dans la page de manuel de spinify(1).
De plus, cette version introduit de nouvelles quantités mesurables lors de la simulation. L'usager peut maintenant choisir parmi l'énergie interne par site, la magnétisation et la susceptibilité magnétique. Autant d'outils pour analyser le comportement du modèle aux abords de la température critique (de même que pour trouver cette température critique).
Enfin, j'utilise maintenant GNU Autotools pour compiler le logiciel. En théorie, Spinify devrait compiler sans problème sur n'importe quel système Unix ou Linux.
Si vous utilisez ce logiciel et que vous avez des commentaires ou que vous avez des questions à son propos, n'hésitez pas à me contacter par l'entremise de la liste d'envoi spinify-discuss@googlegroups.com.
Catégories :
informatique,
maths,
physique
lundi 15 février 2010
Spinify 2.1
La première version vraiment fonctionnelle du logiciel de simulation du modèle d'Ising en deux dimensions sur la sphère est maintenant disponible ici : spinify-2.1.tar.bz2. Le programme s'installe sur Mac OS X et Ubuntu 9.10 (et probablement tous les autres Unix et Linux). Pour plus de détails concernant l'installation, voir le wiki.
Catégories :
informatique,
maths,
physique
lundi 25 janvier 2010
Spinify
Il y a quelques années, j'ai travaillé sur un projet qui consistait à développer un programme de simulation du modèle d'Ising sur des surfaces ayant un tenseur métrique non trivial. Ce projet n'a jamais été complété. Or, je m'y suis récemment remis, et j'avance à bon train.
J'ai réécrit le code en C++ et j'ai implémenté un algorithme pour générer un réseau aléatoire sur la sphère. Actuellement, j'utilise Qhull pour essayer de trianguler le réseau ainsi obtenu, mais le code est mal écrit et le programme plante souvent. Je travaille régulièrement sur le projet, et si le coeur vous en dit, j'apprécierais avoir un peu d'aide. Le code source pour le programme est disponible sur bitbucket à l'adresse http://bitbucket.org/loicseguin/spinify/.
Si ce qui précède est du pur charabia, ne vous en faites pas : avant longtemps, j'écrirai un message détaillant ce qu'est le modèle d'Ising, ce que j'entends par métrique non triviale et comment le programme Spinify essaie de gérer tout cela.
J'ai réécrit le code en C++ et j'ai implémenté un algorithme pour générer un réseau aléatoire sur la sphère. Actuellement, j'utilise Qhull pour essayer de trianguler le réseau ainsi obtenu, mais le code est mal écrit et le programme plante souvent. Je travaille régulièrement sur le projet, et si le coeur vous en dit, j'apprécierais avoir un peu d'aide. Le code source pour le programme est disponible sur bitbucket à l'adresse http://bitbucket.org/loicseguin/spinify/.
Si ce qui précède est du pur charabia, ne vous en faites pas : avant longtemps, j'écrirai un message détaillant ce qu'est le modèle d'Ising, ce que j'entends par métrique non triviale et comment le programme Spinify essaie de gérer tout cela.
Catégories :
informatique,
maths,
physique
mardi 7 avril 2009
Protégeons-nous avec les maths
Une citation toute à l'honneur des mathématiques :
Tirée de Applied Cryptography par Bruce Schneier.
It is insufficient to protect ourselves with laws; we need to protect ourselves with mathematics.
Tirée de Applied Cryptography par Bruce Schneier.
Catégories :
maths,
philosophie
dimanche 15 mars 2009
HiR Information Report
Pour les amateurs de Unix qui veulent en apprendre un peu plus sur la sécurité de leur système ou sur l'administration de systèmes, le blogue HiR Information Report est une source d'informations vraiment intéressante.
Catégories :
ineptie,
informatique
mercredi 11 mars 2009
Copies de sauvegarde
J'ai finalement trouvé une solution convenable pour faire des copies de sauvegarde de mes documents importants : un shell script maison assez simple qui utilise le logiciel rsync (informations sur ce site). rsync est un logiciel libre distribué sous licence GPL et disponible sur la plupart des plateformes Unix de même que sur MS Windows.
Si vous utilisez Mac OS X, rsync fait déjà partie de l'installation par défaut. Il en est probablement de même pour les distributions de Linux les plus populaires. Sur OpenBSD, vous pouvez l'installer avec la commande :
Alors voici, j'ai un Macbook qui fonctionnne sous Mac OS X et il est relié à deux disques durs externes : Hercule et Astro. Il y a plusieurs dossiers et quelques fichiers de configuration (les dotfiles) que je veux copier. Le script ressemble à ceci.
Mis à jour le 12 mars 2009:
Le dossier Library/Application Support a sa propre variable car j'obtiens des erreurs si je l'inclus dans la liste FOLDERS. J'ai essayé de l'inclure avec des guillemets, en échappant l'espace (Library/Application\ Support) mais rien ne fonctionnait. Si quelqu'un sait comment faire en sorte que je puisse include ce dossier dans la liste avec les autres, faites-moi le savoir.
Je mets les fichiers de configuration dans un dossier nommé dotfiles que je crée s'il n'existe pas déjà.
J'ai copié le script dans un dossier qui fait partie de mon $PATH. Voilà ! C'est fait ! Des copies de sauvegarde facile en tapant backup dans un terminal. La magie de rsync, c'est que le logiciel ne recopie que les fragments de fichiers qui ont été modifiés depuis la dernière sauvegarde. Donc le processus est très rapide en général (sauf la première fois que le script fonctionne puisqu'il doit alors copier l'ensemble des fichiers).
Prochaine étape : synchroniser mon Macbook et mon ordinateur de bureau roulant sous OpenBSD avec Unison...
Si vous utilisez Mac OS X, rsync fait déjà partie de l'installation par défaut. Il en est probablement de même pour les distributions de Linux les plus populaires. Sur OpenBSD, vous pouvez l'installer avec la commande :
sudo pkg_add rsyncen supposant que vous avez déjà configuré sudo et que la variable d'environnement PKG_PATH est définie.
Alors voici, j'ai un Macbook qui fonctionnne sous Mac OS X et il est relié à deux disques durs externes : Hercule et Astro. Il y a plusieurs dossiers et quelques fichiers de configuration (les dotfiles) que je veux copier. Le script ressemble à ceci.
Mis à jour le 12 mars 2009:
#!/bin/sh
# This script makes a backup of important files in
# my home directory to two external hard drives,
# Hercule and Astro, using rsync.
OPTS="-avuzC --delete --exclude-from=$HOME/.rsync/excludes"
FOLDERS="Desktop Documents Music Movies Programmes Sites \
Applescripts Pictures Jeux Library/Colorsync \
Library/Thunderbird .rsync"
FOLDER1="Library/Application Support"
BACKUPDIR="Macbook backup"
DOTFILES="$BACKUPDIR/dotfiles"
FILES=".emacs .vimrc .profile"
VOLUMES="/Volumes/Astro /Volumes/Hercule"
for v in $VOLUMES; do
if [ -d "$v" ]; then
if [ ! -d "$v/$BACKUPDIR/Library" ]; then
mkdir -p "$v/$BACKUPDIR/Library"
echo "created directory" "$v/$BACKUPDIR/Library"
fi
for d in $FOLDERS "$FOLDER1"; do
rsync $OPTS "$HOME/$d/" "$v/$BACKUPDIR/$d/"
done
if [ ! -d "$v/$DOTFILES" ]; then
mkdir "$v/$DOTFILES"
echo "created directory" "$v/$DOTFILES"
fi
for f in $FILES; do
rsync $OPTS "$HOME/$f" "$v/$DOTFILES/$f"
done
else
echo "ERROR:" "$v" "not mounted"
fi
done
Et le fichier .rsync/excludes contient.DS_StoreTout d'abord, on définit les options pour rsync :
.depend
*.aplibrary
.localized
- a : le mode archivage (c'est ce qui convient le mieux pour les copies de sauvegarde)
- v : afficher les opérations effectuées à l'écran
- u : update, i.e. : si un fichier sur dans la copie de sauvegarde est plus récent que celui sur le Macbook, on ne le recopie pas
- z : compresser les données
- C : exclure tous les fichiers normalement exclus par CVS (e.g. : *.o, *~, *.a)
- --delete : si un fichier a été effacé du Macbook, l'effacer du dossier de sauvegarde
- --exclude-from : précise le nom du fichier contenant la liste des exclusions
Le dossier Library/Application Support a sa propre variable car j'obtiens des erreurs si je l'inclus dans la liste FOLDERS. J'ai essayé de l'inclure avec des guillemets, en échappant l'espace (Library/Application\ Support) mais rien ne fonctionnait. Si quelqu'un sait comment faire en sorte que je puisse include ce dossier dans la liste avec les autres, faites-moi le savoir.
Je mets les fichiers de configuration dans un dossier nommé dotfiles que je crée s'il n'existe pas déjà.
J'ai copié le script dans un dossier qui fait partie de mon $PATH. Voilà ! C'est fait ! Des copies de sauvegarde facile en tapant backup dans un terminal. La magie de rsync, c'est que le logiciel ne recopie que les fragments de fichiers qui ont été modifiés depuis la dernière sauvegarde. Donc le processus est très rapide en général (sauf la première fois que le script fonctionne puisqu'il doit alors copier l'ensemble des fichiers).
Prochaine étape : synchroniser mon Macbook et mon ordinateur de bureau roulant sous OpenBSD avec Unison...
Catégories :
informatique
jeudi 12 février 2009
Bonne fête Darwin !
Il y a 200 ans, le 12 février 1809, naît un homme qui va révolutionner notre compréhension de la nature : Charles Darwin. Darwin fût un naturaliste de grand renom qui a étudié, entre autre, la botanique et l'entomologie. Mais sa plus grande contribution à la science moderne est sans conteste la théorie de l'évolution par la sélection naturelle.
Deux cents ans plus tard, l'Union Internationale des Sciences Biologiques commémore la mémoire de ce grand homme en désignant l'année 2009, année Darwin.
Malheureusement, deux siècles de science et de découvertes qui confirment cette théorie scientifique n'ont pas suffit à établir la théorie de l'évolution comme un des fondements de l'éducation scientifique. Encore aujourd'hui, des personnes de mauvaise foi qui n'ont pas compris la différence entre la science et la religion essaient de discréditer cette théorie. Le créationnisme et le dessin intelligent ne sont pas des sciences et n'ont, par conséquent, aucune aptitude pour s'opposer au Darwinisme.
Profitons donc de cette année Darwin pour rappeler au monde que la science et la religion ne jouent pas sur le même terrain, et que la théorie de l'évolution par sélection naturelle est une théorie scientifique fondée sur un très grand nombre d'observations qui ont toutes été faites dans le cadre de la démarche scientifique.
La théorie dont Darwin est le père a apporté une compréhension profonde de la biologie et de l'émergence et l'évolution des espèces. Pour cette contribution extraordinaire au savoir, je salue Darwin et lui souhaite un très bon anniversaire !
Quelques liens intéressants :
Catégories :
biologie,
philosophie
vendredi 6 février 2009
Des axiomes mathématiques
En lisant Le moine et le philosophe, je suis tombé sur cette citation de Alan B. Wallace (tirée de Science et Bouddhisme, à chacun sa réalité) :
Cette citation exprime très bien l'approche mathématique moderne. Il est courant de rencontrer des gens qui pensent que les mathématiciens sont à la recherche de vérités ultimes et que leurs travaux sont totalement objectifs. Or, seul le processus mathématique est objectif, les bases sur lesquelles on construit les théorèmes, les axiomes, sont purement subjectives.
On se donne des règles de façon arbitraire, puis, en procédant selon les seules lois de la logique, on développe une théorie complexe et cohérente. Cependant, cette théorie n'est jamais plus "réelle" ou "vraie" que les axiomes qui la supportent et comme ces derniers ne sont pas plus objectifs que des dogmes religieux, on peut développer une théorie mathématique qui n'est pas plus "vraie" que ceux-ci.
Nombre de mathématiciens étudient des objets abstraits qui n'ont aucune ressemblance avec les objets que l'expérience quotidienne nous amène à rencontrer. Toutefois, la majorité des mathématiciens (dont moi-même) étudions des théories mathématiques qui reposent sur des axiomes qui ont été formulé de telle sorte qu'ils représentent le plus fidèlement possible le monde qui nous entoure.
Lorsqu'on fait des mathématiques, ce qui nous intéresse c'est le processus mental, le cheminement logique qui nous mène des axiomes aux théorèmes les plus complexes. Quiconque prétend que ces théorèmes s'appliquent au réel fait un acte de foi qui n'est pas plus valable et qui l'est tout autant que l'acte de foi que fait celui qui choisit de suivre une religion.
Les axiomes mathématiques étaient considérés jusqu'à récemment comme des évidences qu'il n'était pas nécessaire de prouver. Or au siècle dernier des mathématiciens ont suggéré que les postulats d'Euclide, par exemple, ne sont ni vrais ni faux, ce sont simplement les "règles du jeu." [...] Il est maintenant devenu clair que les axiomes mathématiques sont directement ou indirectement dérivés de notre expérience, et qu'on ne peut donc dire que les mathématiques embrassent des lois d'une réalité totalement indépendante de l'expérience.
On se donne des règles de façon arbitraire, puis, en procédant selon les seules lois de la logique, on développe une théorie complexe et cohérente. Cependant, cette théorie n'est jamais plus "réelle" ou "vraie" que les axiomes qui la supportent et comme ces derniers ne sont pas plus objectifs que des dogmes religieux, on peut développer une théorie mathématique qui n'est pas plus "vraie" que ceux-ci.
Nombre de mathématiciens étudient des objets abstraits qui n'ont aucune ressemblance avec les objets que l'expérience quotidienne nous amène à rencontrer. Toutefois, la majorité des mathématiciens (dont moi-même) étudions des théories mathématiques qui reposent sur des axiomes qui ont été formulé de telle sorte qu'ils représentent le plus fidèlement possible le monde qui nous entoure.
Lorsqu'on fait des mathématiques, ce qui nous intéresse c'est le processus mental, le cheminement logique qui nous mène des axiomes aux théorèmes les plus complexes. Quiconque prétend que ces théorèmes s'appliquent au réel fait un acte de foi qui n'est pas plus valable et qui l'est tout autant que l'acte de foi que fait celui qui choisit de suivre une religion.
Catégories :
maths,
philosophie
vendredi 14 novembre 2008
Optique 101 (partie 1)
Pour comprendre comment fonctionne la vue et comment fonctionne un appareil photographique, on doit d'abord connaître quelques principes fondamentaux d'optique géométrique. Nous verrons la propagation de la lumière en ligne droite, la loi de Snell-Descartes et les propriétés des lentilles minces.
La lumière visible est une onde électromagnétique, c'est-à-dire un champ magnétique et un champ magnétique qui se propagent dans l'espace en oscillant. Pour bien comprendre les phénomènes impliquant la lumière, on doit utiliser les équations de l'électromagnétisme découvertes par James Clerk Maxwell au XIXe siècle et la mécanique quantique du XXe siècle. Heureusement, on peut comprendre le fonctionnement des lentilles et miroirs en faisant plusieurs simplifications qui nous permettent d'ignorer ces théories physiques complexes.
D'abord, on suppose que la lumière se déplace en ligne droite. Cette ligne droite correspond à la direction de propagation du champ électromagnétique. Pour notre analyse, il est souvent utile de considérer des rayons de lumière. Un rayon de lumière peut, par exemple, correspondre à la trajectoire d'un faisceau laser, ou à la lumière qui provient du sommet de la tour Eiffel et qui parvient à votre oeil.
Deux lois fondamentales de l'optique ont d'abord été trouvées empiriquement, puis expliquées théoriquement par les équations de Maxwell. D'abord, la loi de la réflexion, découverte environ 1000 ans après Jésus Christ par un arabe du nom d'Alhazen, stipule que lorsqu'un rayon de lumière atteint une surface, l'angle d'incidence θi et l'angle de réflexion θr (mesurés par rapport à une droite perpendiculaire à la surface, la normale) sont égaux:
θi = θr
De plus, le rayon incident, le rayon réfléchi et la normale à la surface sont dans le même plan, qu'on appelle plan d'incidence. La lumière se comporte donc comme une boule de billard qui frappe la bande : les angles d'incidence et de réflexion sont égaux, et la boule demeure sur la table.Beaucoup plus tard, en 1621, Willebrord Snell découvre la loi de la réfraction. Cette loi, connu sous le nom de loi de Snell, a été publiée pour la première fois dans une notation mathématique moderne par René Descartes quelques années plus tard. Pour cette raison, on l'appelle parfois la loi de Snell-Descartes. Lorsque la lumière passe d'un milieu transparent à un autre (par exemple, de l'air au verre) sa vitesse change et ce changement de vitesse, jumelé avec le principe de moindre action (qui veut dire, grosso modo, que la lumière emprunte le chemin le plus court possible entre deux points), entraîne un changement de direction du rayon lumineux.
Chaque milieu transparent est caractérisé par un indice de réfraction, noté n. Cet indice est le rapport entre la vitesse de la lumière dans le vide et la vitesse de la lumière dans le milieu considéré. Par exemple, la lumière se propage un quart de fois moins vite dans l'eau que dans le vide ce qui donne pour l'eau :
neau = vvide / veau
neau = vvide / ((1 - 1/4)*vvide)
neau = 1,33
La loi de Snell-Descartes fait le lien entre les indices de réfraction et les angles d'incidence et de réfraction. Si un rayon de lumière passe du milieu 1 au milieu 2, d'indices de réfraction n1 et n2 respectivement, a un angle d'incidence θi, alors l'angle du rayon transmis θt respectera la relation :
n1 sinθi = n2 sinθt

De plus, le rayon incident, le rayon transmis et la normale sont dans le même plan, comme pour la réflection.
Le milieu le plus réfringent est celui avec l'indice de réfraction le plus élevé. Si le rayon lumineux passe du milieu le moins réfringent au milieu le plus réfringent, il se

De plus, le rayon incident, le rayon transmis et la normale sont dans le même plan, comme pour la réflection.
Le milieu le plus réfringent est celui avec l'indice de réfraction le plus élevé. Si le rayon lumineux passe du milieu le moins réfringent au milieu le plus réfringent, il se
rapprochera de la normale. S'il passe du milieu le plus réfringent au milieu le moins réfringent, il s'éloignera de la normale.
La loi de Snell-Descartes est fondamentale pour comprendre le fonctionnement d'une partie cruciale d'un appareil photo : la lentille. Nous verrons dans le prochain article comment fonctionne une lentille.
La loi de Snell-Descartes est fondamentale pour comprendre le fonctionnement d'une partie cruciale d'un appareil photo : la lentille. Nous verrons dans le prochain article comment fonctionne une lentille.
Catégories :
photographie,
physique
jeudi 13 novembre 2008
La physique et les maths de la photo
Ceci est le premier d'une série d'article sur la physique et les mathématiques de la photographie. La photographie est une activité que beaucoup de gens pratiquent sans savoir à quel point l'appareil qu'ils ont entre les mains est une petite merveille de science et d'ingénierie. Étant moi-même un scientifique, ces articles couvriront davantage la science que le génie.
J'ai en tête des articles sur les aberrations optiques (chromatique, sphérique, etc.), le nombre-f, le lien entre l'ouverture du diaphragme et la profondeur de champ, la polarisation, et la compression JPEG. Probablement qu'en cours de route j'ajouterai d'autres sujets qui me passeront par la tête. S'il y a un aspect de la photographie qui vous intéresse particulièrement, laissez-moi un commentaire et je verrai ce que je peux faire.
Les deux premiers articles seront des introductions en douceur aux concepts de base d'optique géométrique et au fonctionnement d'un appareil photographique. J'ai choisi les titres inspirés Optique 101 et Appareil Photographique 101.
J'ai en tête des articles sur les aberrations optiques (chromatique, sphérique, etc.), le nombre-f, le lien entre l'ouverture du diaphragme et la profondeur de champ, la polarisation, et la compression JPEG. Probablement qu'en cours de route j'ajouterai d'autres sujets qui me passeront par la tête. S'il y a un aspect de la photographie qui vous intéresse particulièrement, laissez-moi un commentaire et je verrai ce que je peux faire.
Les deux premiers articles seront des introductions en douceur aux concepts de base d'optique géométrique et au fonctionnement d'un appareil photographique. J'ai choisi les titres inspirés Optique 101 et Appareil Photographique 101.
Catégories :
maths,
photographie,
physique
mardi 30 septembre 2008
L'antre de la bête
Dans un élan d'exhibitionnisme, je vous montre ici mon milieu de travail. On constate la grande organisation qui règne sur mon bureau...

Et voici les instruments essentiels à la tâche du mathématicien :

Et voici les instruments essentiels à la tâche du mathématicien :
Catégories :
ineptie
mardi 23 septembre 2008
Manipuler des symboles
Les mathématiques sont percues par beaucoup de gens, dont plusieurs mathématiciens, comme étant un ensemble de règles qui dictent comment manipuler des symboles. En manipulant ces symboles, on arrive à formuler les "phrases" mathématiques que sont les théorèmes. Bien sûr, la plupart du temps, des significations sont données à ces symboles et les théorèmes peuvent être exprimés en langage courant.
Par exemple, "+" est universellement reconnu comme le symbole de l'addition. Cette opération, qui consiste à mettre ensemble deux "paquets" d'objets similaire, signifie quelque chose de très concret.
Or, il arrive que dans une preuve la manipulation de symboles prenne le dessus sur la signification des calculs effectués. Pour moi, la preuve perd alors toute élégance et le théorème qu'elle démontre perd de son intérêt. Un résultat qu'on ne peut expliquer en mots n'est pas un résultat qui est devenu suffisamment mature pour mériter une grande attention.
Ce qui fait la beauté de certains résultats (le théorème de Pythagore, pour citer un exemple connu), c'est le fait que leur formulation en langage courant est "facile", et que la preuve s'appuie sur des idées que l'on peut décrire avec des mots, sans avoir recours à des formules.
Les symboles et les calculs ont évidemment une utilité. Ils servent à simplifier certaines étapes du raisonnement et à obtenir des résultats précis. Néanmoins, ils ne doivent jamais prendre le dessus sur le sens de la preuve.
Les idées sont plus importantes que les calculs. Et, étrangement, il est beaucoup plus difficile de formuler des idées que d'effectuer des calculs.
Par exemple, "+" est universellement reconnu comme le symbole de l'addition. Cette opération, qui consiste à mettre ensemble deux "paquets" d'objets similaire, signifie quelque chose de très concret.
Or, il arrive que dans une preuve la manipulation de symboles prenne le dessus sur la signification des calculs effectués. Pour moi, la preuve perd alors toute élégance et le théorème qu'elle démontre perd de son intérêt. Un résultat qu'on ne peut expliquer en mots n'est pas un résultat qui est devenu suffisamment mature pour mériter une grande attention.
Ce qui fait la beauté de certains résultats (le théorème de Pythagore, pour citer un exemple connu), c'est le fait que leur formulation en langage courant est "facile", et que la preuve s'appuie sur des idées que l'on peut décrire avec des mots, sans avoir recours à des formules.
Les symboles et les calculs ont évidemment une utilité. Ils servent à simplifier certaines étapes du raisonnement et à obtenir des résultats précis. Néanmoins, ils ne doivent jamais prendre le dessus sur le sens de la preuve.
Les idées sont plus importantes que les calculs. Et, étrangement, il est beaucoup plus difficile de formuler des idées que d'effectuer des calculs.
Catégories :
maths
vendredi 12 septembre 2008
Triangulations créatives
On peut représenter les objets tridimensionnels par des triangles collés les uns aux autres de telle sorte qu'ils épousent les formes de l'objet. On appelle une telle construction une triangulation. Une fois qu'on a obtenu une triangulation, on peut la raffiner en divisant les triangles en triangles plus petits. Cet article présentera des méthodes de raffinement qui, lorsqu'on représente graphiquement les triangles qu'elles produisent, génèrent des dessins dont la beauté surprend.
Catégories :
maths
mercredi 10 septembre 2008
Le LHC démarre !
Une grande nouvelle pour les physiciens et les curieux qui s'interrogent sur la nature de l'univers. Le Large Hadron Collider (LHC, grand collisioneur de proton en français), le plus grand accélérateur de particule construit par l'homme, a été mis en route aujourd'hui. Sa mise en marche a été retardée à quelques reprises, mais finalement, nous y sommes.
Le LHC est un immense complexe dont la composante principale est un tube de 27km de circonférence dans lequel voyageront deux faisceaux de protons. Pour l'instant, un seul faisceau a été injecté dans l'accélérateur, le deuxième le sera dans quelques semaines. Ces faisceaux entreront en collision à quatre endroits prédéterminés autour du tube où des détecteurs gigantesques recueilleront des données sur les résultats des collisions. Par exemple, ATLAS, un des détecteurs, pèse 7000 tonnes, mesure 25 mètres de haut et 45 mètres de long.
L'étude de ces collisions à haute énergie (14 TeV) permettra de rechercher des preuves expérimentales de l'existence du boson de Higgs (la particule qui est sensé donner une masse à toutes les autres), de dimensions supplémentaires (qui sont requises par la théorie des supercordes, par exemple) et de la supersymétrie. De plus, LHC permettra de mieux comprendre les différences entre la matière et l'antimatière (entre autre, pourquoi y a-t-il plus de matière que d'antimatière) et peut-être même d'élucider le mystère de la matière sombre.
Le LHC est une des plus grandes réalisations technique de l'être humain. Les protons voyageront à une vitesse proche de celle de la lumière grâce à un système complexe d'aimants refroidi à des températures proche du zéro absolu (1,9K). La quantité de données générées par les quatre détecteurs atteindra 15 millions de gigaoctets qui devront être analysés, filtrés et stockés, ce qui nécessitera des ordinateurs parmi les plus puissants du monde.
Plus de détails sur
Le LHC est un immense complexe dont la composante principale est un tube de 27km de circonférence dans lequel voyageront deux faisceaux de protons. Pour l'instant, un seul faisceau a été injecté dans l'accélérateur, le deuxième le sera dans quelques semaines. Ces faisceaux entreront en collision à quatre endroits prédéterminés autour du tube où des détecteurs gigantesques recueilleront des données sur les résultats des collisions. Par exemple, ATLAS, un des détecteurs, pèse 7000 tonnes, mesure 25 mètres de haut et 45 mètres de long.
L'étude de ces collisions à haute énergie (14 TeV) permettra de rechercher des preuves expérimentales de l'existence du boson de Higgs (la particule qui est sensé donner une masse à toutes les autres), de dimensions supplémentaires (qui sont requises par la théorie des supercordes, par exemple) et de la supersymétrie. De plus, LHC permettra de mieux comprendre les différences entre la matière et l'antimatière (entre autre, pourquoi y a-t-il plus de matière que d'antimatière) et peut-être même d'élucider le mystère de la matière sombre.
Le LHC est une des plus grandes réalisations technique de l'être humain. Les protons voyageront à une vitesse proche de celle de la lumière grâce à un système complexe d'aimants refroidi à des températures proche du zéro absolu (1,9K). La quantité de données générées par les quatre détecteurs atteindra 15 millions de gigaoctets qui devront être analysés, filtrés et stockés, ce qui nécessitera des ordinateurs parmi les plus puissants du monde.
Plus de détails sur
- la nouvelle : Radio-Canada.ca, Cyberpresse
- le LHC : CERN, the LHC rap
Catégories :
physique
dimanche 7 septembre 2008
Le dilemme du prisonnier
Le "jeu", au sens de la théorie des jeux, le plus connu est sans conteste le dilemme du prisonnier. Deux suspects sont arrêtés relativement à un crime donné. Ils sont interrogés séparément et ne peuvent communiquer d'aucune façon que ce soit. Ils connaissent tous deux les règles : lors de son interrogatoire, le suspect peut accuser l'autre suspect et bénéficier d'une peine moindre pour avoir collaboré avec la police, ou prétendre qu'ils sont tous les deux innocents. Si les deux suspects s'accusent mutuellement, ils purgeront tous les deux une peine de 9 ans. Si un des suspects accuse son collègue et l'autre affirme son innocence, le premier n'ira pas en prison et le second purgera 10 ans. Enfin, si les deux affirment leur innocence, ils purgeront tous deux 1 ans pour infraction mineure.
Quelle est la stratégie gagnante pour chaque prisonnier ? Le prisonnier 1 doit choisir entre accuser (A) et innocenter (I). Supposons que le prisonnier 2 choisisse I, alors, 1 a le choix entre purger 1 an s'il choisi I, ou rien du tout s'il choisi A. Donc sa stratégie gagnante dans ce cas est A. Si le prisonnier 2 a choisi A, 1 a le choix entre purger 10 ans s'il choisi I ou 9 ans s'il choisi A. Encore une fois, la stratégie gagnante est A.
Puisque 1 n'a aucune façon de savoir la réponse de 2, et que dans tous les cas il s'en sort avec une peine moindre s'il choisi A, c'est définitivement sa meilleure option. Le raisonnement est identique pour le prisonnier 2. Alors, il semble que le seul résultat sensé pour ce jeu soit que les deux prisonniers s'accusent mutuellement et purgent chacun 9 ans. Cette solution est appelée un point d'équilibre de Nash pour ce jeu.
Un point d'équilibre de Nash est un choix de stratégie pour chaque joueur tel que si un joueur décide de changer sa stratégie, il aura une peine plus grande. Le nom viens du mathématicien John Forbes Nash, prix Nobel d'économie 1994, dont l'histoire romancée est décrite dans le film "A beautiful mind".
Revenons au dilemme des prisonniers. L'équilibre de Nash pour ce jeu fait en sorte que chaque prisonnier purge un grand nombre d'années en prison. Il existe pourtant une solution à ce jeu qui est beaucoup plus avantageuse "socialement". Si les deux innocentent leur collègue, ils ne purgeront qu'un an chacun. La collaboration, dans ce contexte, est une bien meilleure option que l'avarice.
Quelle est la stratégie gagnante pour chaque prisonnier ? Le prisonnier 1 doit choisir entre accuser (A) et innocenter (I). Supposons que le prisonnier 2 choisisse I, alors, 1 a le choix entre purger 1 an s'il choisi I, ou rien du tout s'il choisi A. Donc sa stratégie gagnante dans ce cas est A. Si le prisonnier 2 a choisi A, 1 a le choix entre purger 10 ans s'il choisi I ou 9 ans s'il choisi A. Encore une fois, la stratégie gagnante est A.
Puisque 1 n'a aucune façon de savoir la réponse de 2, et que dans tous les cas il s'en sort avec une peine moindre s'il choisi A, c'est définitivement sa meilleure option. Le raisonnement est identique pour le prisonnier 2. Alors, il semble que le seul résultat sensé pour ce jeu soit que les deux prisonniers s'accusent mutuellement et purgent chacun 9 ans. Cette solution est appelée un point d'équilibre de Nash pour ce jeu.
Un point d'équilibre de Nash est un choix de stratégie pour chaque joueur tel que si un joueur décide de changer sa stratégie, il aura une peine plus grande. Le nom viens du mathématicien John Forbes Nash, prix Nobel d'économie 1994, dont l'histoire romancée est décrite dans le film "A beautiful mind".
Revenons au dilemme des prisonniers. L'équilibre de Nash pour ce jeu fait en sorte que chaque prisonnier purge un grand nombre d'années en prison. Il existe pourtant une solution à ce jeu qui est beaucoup plus avantageuse "socialement". Si les deux innocentent leur collègue, ils ne purgeront qu'un an chacun. La collaboration, dans ce contexte, est une bien meilleure option que l'avarice.
Catégories :
maths
mercredi 14 mai 2008
La complexité de l'enseignement
Concernant le problème TEACH défini ci-dessous, j'ai obtenu un résultat intéressant de complexité.
Exemple : Un groupe d'étudiants E = {e_1, ..., e_n}, un sujet S et un cours C.
Question : Est-ce qu'au moins k étudiants vont passer le cours ?
Le problème est difficile.
Proposition : Le problème TEACH est NP-difficile.
Preuve : La preuve repose sur une réduction à partir du problème de couplage en 3 dimensions (3D-MATCHING). Détails à venir.
Des inspirations transcendantales me font croire que le problème est aussi NP-complet, quoique je n'ai aucune idée de preuve pour appuyer ma conjecture. Toute contribution est la bienvenue.
Conjecture : Le problème TEACH est NP-complet.
Inscription à :
Articles (Atom)