\documentclass[11pt,a4paper,pdftex]{article} \usepackage[latin1]{inputenc} \usepackage[frenchb]{babel} \usepackage[garamond]{mathdesign} \usepackage{geometry,multicol} \usepackage{xcolor,graphicx} \usepackage{pifont} \renewcommand{\ttdefault}{lmtt} \definecolor{gris}{gray}{0.9} \definecolor{DarkSlateBlue}{rgb}{0.28,0.24,0.55} \definecolor{firebrick}{rgb}{0.7,0.13,0.13} \parindent0pt \geometry{margin=1cm,nohead,nofoot} \pagestyle{empty} \newlength{\largeur} \setlength{\largeur}{\textwidth} \addtolength{\largeur}{-2\fboxsep} \addtolength{\largeur}{-2\fboxrule} \renewcommand{\tt}[1]{\texttt{\bfseries\color{firebrick} #1}} \newcommand{\mathematica}{\textit{\bfseries\color{DarkSlateBlue}Mathematica}} \makeatletter \renewcommand\section{\@startsection {section}{1}{\z@}% {-3.5ex \@plus -1ex \@minus -.2ex}% {2.3ex \@plus .2ex}% {\centering\Large\scshape\bfseries}} \makeatother \def\imp{\(\Rightarrow\)} \begin{document} \fcolorbox{black}{gris}{\parbox{\largeur}{ \Large PTSI -- Lycée Louis Armand -- POITIERS \textbf{Mathématiques} TP Mathematica N°1 (2 heures)\hfill Vendredi 7 mars 2008 }} \vspace{5mm} \section*{Les expressions} \begin{multicols}{2} \begin{dingautolist}{'300} \item Écrire quelques expressions. \begin{verbatim} e1 = a + b + c; e2 = a + b * c e3 = {a + b, c} e4 = 18.; e5 = 36/2 \end{verbatim} \item Utiliser les instructions \tt{FullForm}, \tt{Head} et \tt{TreeForm} pour comprendre comment \mathematica{} en fait l'analyse. \end{dingautolist} \end{multicols} \section*{Un peu de logique} \begin{multicols}{2} \begin{dingautolist}{'300} \item Définir quelques listes. \begin{verbatim} l1 = {1,2,3,4} l2 = {a,b,c,d} l3 = {t,u,v,x,y,z} \end{verbatim} \item Appréhender l'instruction \tt{Outer}. \begin{verbatim} Outer[Plus,l1,l2] Outer[Times,l1,l2] Outer[List,l1,l2] Outer[List,l1,l2,l3] \end{verbatim} \item Présentation des listes avec \tt{TableForm}. \item Définir la table de vérité, de référence. \begin{verbatim} VF = {True, False} \end{verbatim} \item Manipuler les connecteurs logiques \tt{Or}, \tt{And}, \tt{Not}, \tt{Xor}, \tt{Nor}, \tt{Nand}, \tt{Implies}. \begin{verbatim} Outer[And,VF,VF] \end{verbatim} \item Définir une formule propositionnelle. \begin{verbatim} f1[a_,b_] := Or[Not[a],b] Outer[f1,VF,VF] \end{verbatim} \item Vérifier la validité de la contraposition. \item Définir une formule propositionnelle à trois arguments. Usage de \tt{Flatten}. \begin{verbatim} f2[a_,b_,c_] := And[Not[Or[a,b]],c] Outer[f2,VF,VF,VF]//Flatten \end{verbatim} \item Obtenir la représentation d'une table de vérité. Usage de \tt{Thread}, \tt{DisplayForm}, \tt{Gridbox}. \begin{verbatim} f3[{a_,b_,c_}] := {a,b,c,Or[a,And[b,c]]} VF3 = Flatten[Outer[List,VF,VF,VF],2] tf3 = Thread[f3[VF3]] DisplayForm[GridBox[tf3, RowLines->1, ColumnLines->1]] \end{verbatim} \item Les propositions \textbf{A ou (B et C)} et \textbf{(A ou B) et C} sont-elles équivalentes? Trouvez les formules propositionnelles équivalentes parmi les suivantes: \textbf{A\imp(B\imp C)}, \textbf{(A\imp C) et (B\imp C)}, \textbf{(A et B)\imp C}, \textbf{(A ou B)\imp C}, \textbf{(A\imp C) ou (B\imp C)}. \end{dingautolist} \end{multicols} \section*{Les listes (1)} \begin{multicols}{2} \begin{dingautolist}{'300} \item Création de quelques listes. Observer, au passage, les différents modes de création. \begin{verbatim} l1 = {a, b, {c, d}, d, e} l2 = List[a, b, {c, d}, d, e] l3 = Table[n, {n, 1, 100}] l4 = Range[10] l5 = Table[j, {j, 10}] l6 = Table[j, {j, 1, 10, .5}] \end{verbatim} \item Évaluer les opérations directes sur les listes. \begin{verbatim} l1 + l2 l1 * l2 2 * l1 a + l2 \end{verbatim} Que se passe t-il dans une \textit{addition} de listes si elles n'ont pas le même nombre d'éléments? \item Tester les fonctions suivantes qui s'apliquent aux listes: \tt{Length}, \tt{First}, \tt{Rest}, \tt{RotateLeft}, \tt{Reverse}, \tt{Drop}, \tt{Join}, \tt{Union}, \tt{Intersection}. \item Extraire des éléments d'une liste. \begin{verbatim} l1[[1]] {a, b, {c, d}, e}[[3]] l1[[3,2]] l1[[3]][[2]] l1[[{1,2}]] \end{verbatim} Obtenir les mêmes résultats à l'aide des instructions \tt{Take} et \tt{Part}. \end{dingautolist} \end{multicols} \end{document}