\documentclass[twocolumn]{article}
\usepackage[landscape]{geometry}
\usepackage{amssymb, amsmath, multicol, cancel}
\usepackage[table, svgnames, dvipsnames]{xcolor}
\usepackage{makecell, cellspace, caption}
\usepackage[europeanresistors]{circuitikz}
\usepackage[a]{esvect} % voir la doc pour les différents styles
\usepackage{tikz-3dplot}
\usepackage{pdflscape}

\let\overrightarrow\vv


\usetikzlibrary{arrows}
\usetikzlibrary{shapes.geometric}

\newcommand{\parspace}{\vspace{0.1cm}}
\linespread{1.25}
\geometry{tmargin=.7in, bmargin=.75in, lmargin=.75in, rmargin = .75in}

\begin{document}
\setlength{\parindent}{0mm}

\title{Calcul Numérique - Cheat Sheet Matlab}
\author{Aubin SIONVILLE}
\date{Télécom St Etienne 2023-2024}

\maketitle

    
\section*{Variables}

\texttt{a = 1} : \texttt{a} prend la valeur 3\\
\texttt{x = [1,2,3]} : \texttt{x} est le vecteur ligne \texttt{[1,2,3]}\\
\texttt{x = [1;2;3]} : \texttt{x} est le vecteur colonne \texttt{[1;2;3]}\\
\texttt{A = [1,2,3;4,5,6]} : \texttt{A} est une matrice $2 \times 3$\\
\texttt{x(2) = 4} : \texttt{x} devient \texttt{[1,4,3]}\\
\texttt{A(1,2) = 0} : \texttt{A} devient \texttt{[1,0,3;4,5,6]}\\

\section*{Opérations sur les variables}

\texttt{1+2, 3-4, 5*6, 7/8} : addition, soustraction, multiplication, division\\
\texttt{1\^{}2} : puissance\\
\texttt{sqrt(4)} : racine carrée\\
\texttt{exp(1)} : exponentielle\\
\texttt{expm1(1)} : exponentielle moins 1\\
\texttt{log(2)} : logarithme népérien\\
\texttt{log1p(2)} : logarithme népérien plus 1\\
\texttt{log10(10)} : logarithme décimal\\
\texttt{sin(pi), cos(2*pi), tan(pi/6)} : sinus, cosinus, tangente\\
\texttt{abs(-1)} : valeur absolue\\
\texttt{floor(1.5), ceil(1.5)} : partie entière par défaut, par excès\\

\section*{Création de matrices et vecteurs}

\texttt{zeros(n,m)} : matrice nulle $n \times m$\\
\texttt{ones(n,m)} : matrice de 1 $n \times m$\\
\texttt{eye(n)} : $I_n$
\texttt{eye(n,m)} : matrice $n \times m$ avec des 1 sur la diagonale\\
\texttt{rand(n,m)} : matrice $n \times m$ de nombres aléatoires entre 0 et 1\\
\texttt{linspace(a,b,n)} : vecteur ligne de $n$ valeurs équiréparties entre $a$ et $b$ inclus\\

\section*{Opérations sur les matrices et vecteurs}

\texttt{A+B, A-B, x+k} : addition, soustraction, addition d'un scalaire\\
\texttt{A*B, A*x} : multiplication matricielle, multiplication matrice-vecteur\\
\texttt{A.*B} : multiplication terme à terme\\
\texttt{k*A, k*x} : multiplication par un scalaire\\
\texttt{A\^{}n} : puissance\\
\texttt{A.\^{}n} : puissance terme à terme\\
\texttt{A\textbackslash B} : résolution de $AX=B$\\
\texttt{A'} : transposée de $A$\\
\texttt{inv(A)} : inverse de $A$\\
\texttt{det(A)} : déterminant de $A$\\
\texttt{x(a:b)} : vecteur ligne des éléments de \texttt{x} d'indice \texttt{a} à \texttt{b}\\
\texttt{A(n,:)} : \texttt{n}-ième vecteur ligne de \texttt{A}\\
\texttt{A(:,n)} : \texttt{n}-ième vecteur colonne de \texttt{A}\\
\texttt{A(5, 1:3)} : éléments de la 5ème ligne de \texttt{A} d'indice 1 à 3\\ 

\section*{Graphiques}

\texttt{plot(x,y)} : affiche le graphe de $y$ en fonction de $x$\\
\texttt{plot(x1,y1,x2,y2)} : affiche les graphes de $y_1$ et $y_2$ en fonction de $x_1$ et $x_2$\\
\texttt{semilogx(x,y)} : affiche le graphe de $y$ en fonction de $\log(x)$\\
\texttt{semilogy(x,y)} : affiche le graphe de $\log(y)$ en fonction de $x$\\
\texttt{loglog(x,y)} : affiche le graphe de $\log(y)$ en fonction de $\log(x)$\\
\texttt{plot(x,y,'o')} : affiche le graphe de $y$ en fonction de $x$ avec des points\\
\texttt{title('titre')} : ajoute un titre au graphe\\
\texttt{xlabel('titre')} : ajoute un titre à l'axe des abscisses\\
\texttt{ylabel('titre')} : ajoute un titre à l'axe des ordonnées\\
\texttt{legend('courbe1','courbe2')} : ajoute une légende au graphe\\
\texttt{grid on} : ajoute une grille au graphe\\
\texttt{axis([xmin,xmax,ymin,ymax])} : définit les bornes des axes\\
\texttt{hold on} : continue de dessiner sur le même graphe\\
\texttt{hold off} : arrête de dessiner sur le même graphe\\
\texttt{figure} : crée une nouvelle fenêtre de graphe\\

\section*{Fonctions}

$\begin{array}{l}
    \texttt{function output = nom\_fonction(input)}\\
    \quad\quad\quad \texttt{output = ...}\\
    \texttt{end}
\end{array}$

\section*{Fonctions anonymes}

\texttt{f = @(x) x\^{}2} : définit la "fonction anonyme" $f(x) = x^2$\\

\section*{Logique}

\texttt{a == b} : \texttt{a} est égal à \texttt{b} ?\\
\texttt{a \textasciitilde= b} : \texttt{a} est différent de \texttt{b} ?\\
\texttt{a > b , a < b} : \texttt{a} est supérieur, inférieur à \texttt{b} ?\\
\texttt{a >= b , a <= b} : \texttt{a} est supérieur ou égal, inférieur ou égal à \texttt{b} ?\\
\texttt{cond1 \&\& cond2} : \texttt{cond1} et \texttt{cond2} sont vraies ?\\
\texttt{cond1 || cond2} : \texttt{cond1} ou \texttt{cond2} est vraie ?\\

\section*{Conditions et boucles}

$\begin{array}{l}
    \texttt{if condition1}\\
    \quad\quad\quad \texttt{...}\\
    \texttt{elseif condition2}\\
    \quad\quad\quad \texttt{...}\\
    \texttt{else}\\
    \quad\quad\quad \texttt{...}\\
    \texttt{end}
    \\\\
    \texttt{for i = 1:n} \quad\quad\quad\quad (\texttt{for i = 1:k:n} \text{ pour un pas de } \texttt{k})\\
    \quad\quad\quad \texttt{...}\\
    \texttt{end}
    \\\\
    \texttt{while condition}\\
    \quad\quad\quad \texttt{...}\\
    \texttt{end}
\end{array}$

\section*{Misc}
\texttt{[ligne de code];} : exécute la ligne de code sans afficher le résultat\\

\end{document}