pythontestsympy

🧩 Syntax:
\documentclass[12pt,a4paper]{article}
\usepackage[utf8]{inputenc}
\usepackage[french]{babel}
\usepackage[T1]{fontenc}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}
% Appel du package pythontex 
\usepackage{pythontex}
%

\begin{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{pycode}
from sympy import *
x, y = symbols('x y')
\end{pycode}

\section{Développements, factorisations...} \noindent
Voici une expression : $$x(x + 2y)$$
\begin{pycode}
expr = x*(x + 2*y)
dev_expr = expand(expr)
\end{pycode}
Sympy produit l'expression développée $\py{dev_expr}$ \\
C'est déjà pas mal mais , on peut rendre ça plus joli : $\py{latex(dev_expr)}$\\
Sympy peut aussi factoriser : $x^2-8x+15 = \py{latex(factor(x**2-8*x+15))}$\\


\section{Fractions}
La gestion des nombres rationnels va passer par l'utilisation de la classe Rational.\\
Rational(1,2) produit la fraction $\frac{1}{2}$ et permet de faire des calculs. (additions de fractions ...). Il est possible de raccourcir le code d'appel de la classe Rational avec "R = Rational" :
\begin{pycode}
R = Rational
a=R(1,2)
b=R(1,3)
c=R(1,4)
\end{pycode}

$$\frac{1}{2}+\frac{1}{3}+\frac{1}{4} = \py{latex(a+b+c)}$$

Les fractions avec des lettres ne posent pas de problèmes particuliers.
\begin{pycode}
expr = 1/( (x+2)*(x+1) )
\end{pycode}
\begin{center}
	$\frac{1}{(x+2)(x+1)}$ = $\py{latex(apart(expr, x))}$
\end{center}
\begin{pycode}
expr = 1/x + (3*x/2 - 2)/(x - 4)
\end{pycode}
\begin{center}
	$\frac{1}{x} + \frac{\frac{3x}{2}}{x-4}$ = $\py{latex(cancel(expr))}$
\end{center}


\section{Limites, dérivées, intégrales ...}\noindent
Ce genre de problème est d'une facilité déconcertante :\\ 
La dérivée de la fonction définie par $\cos(x)$ est : $\py{latex(diff(cos(x), x))}$\\
La dérivée de la fonction définie par $\ln(x^2)$ est : $\py{latex(diff(ln(x**2), x))}$\\
Une primitive de la fonction définie par $\cos(x)$ est : $\py{latex(integrate(cos(x), x))}$\\
La limite de la fonction $\frac{ln(x)}{x}$ en $+\infty$ est : $\py{latex(limit(ln(x)/x, x, oo))}$\\
La limite de la fonction $\frac{1}{x}$ en $0^{+}$ est : $\py{latex(limit(1/x, x, 0, '+'))}$\\[0.5em]
La limite de la fonction $\frac{1}{x}$ en $0^{-}$ est : $\py{latex(limit(1/x, x, 0, '-'))}$\\
\begin{pycode}
import sympy
expr = sympy.exp(sin(x))
\end{pycode}
% Pour utiliser la fonction exponentielle il faut utiliser symp.exp , sinon la fonction entre en conflit avec la fonction exp du package Maths
Développement en série de la fonction $\exp(\sin(x))$ en $x=0$ de rang 4 : 
$\py{latex(expr.series(x, 0, 4))}$\\
L'intégrale $\int_{-\infty}^{+\infty}\int_{-\infty}^{+\infty} \exp(-x^2-y^2) \text{d}x\text{d}y$ vaut : $\py{
	latex( integrate(sympy.exp(-x**2 - y**2), (x, -oo, oo), (y, -oo, oo)) )}$
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\end{document}