En utilisant SymPy ou Mathematica mais un seul des deux, répondre aux questions suivantes.
Écrire vos réponses dans le fichier Devoir-1-<MATRICULE>-<NOM>.ipynb
ou Devoir-1-<MATRICULE>-<NOM>.nb
selon que vous utilisiez SymPy ou Mathematica téléchargeable sur la page web du cours. Inclure la démarche, les réponses aux questions et les justifications. Envoyer votre fichier avant le jeudi 24 mars à 23h59 par courriel à l'adresse slabbe@ulg.ac.be
en remplaçant <MATRICULE>
par votre numéro de matricule et <NOM>
par votre nom.
Pour écrire du texte entre les cellules et justifier une réponse, utiliser
Format > Style > Text
en Mathematica, et Cell > Cell Type > Markdown
en SymPy et Jupyter.
Le plagiat sera détecté et entraînera une note de zéro pour les personnes impliquées.
Le Théorème de Gauss--Wantzel dit qu'un polygone régulier à $n$ côtés est constructible avec la règle et le compas si et seulement si $n$ est le produit d'une puissance de $2$ et de nombres premiers de Fermat distincts dont les seuls connus sont 3, 5, 17, 257 et 65537.
Est-ce qu'un polygone régulier à 6 côtés est constructible?
from sympy import factorint
factorint(6)
{2: 1, 3: 1}
Réponse: OUI
Est-ce qu'un polygone régulier à 24480 côtés est constructible?
factorint(24480)
{2: 5, 3: 2, 5: 1, 17: 1}
Réponse: NON
Est-ce qu'un polygone régulier à 88305875025920 côtés est constructible?
factorint(88305875025920)
{2: 20, 5: 1, 257: 1, 65537: 1}
Réponse: OUI
Résoudre l'équation $x^3-3x^2-5=0$ et donner une valeur numérique approchée des solutions.
from sympy import init_printing
init_printing(use_latex='mathjax')
from sympy import solve,N
from sympy.abc import x
racines = solve(x**3-3*x**2-5)
racines
for racine in racines:
print racine.n()
-0.212994378680811 - 1.18914510810655*I -0.212994378680811 + 1.18914510810655*I 3.42598875736162
Tracer la surface de Dini dont les équations paramétriques sont: \begin{align*} x&=a\cos\left(u\right)\sin\left(v\right)\\ y&=a\sin\left(u\right)\sin\left(v\right)\\ z&=a\left(\cos\left(v\right)+\ln\left(\tan\left(\frac{v}{2}\right)\right)\right)+bu \end{align*} pour $a=1$, $b=1$ sur les intervalles $0\leq u \leq 5\pi$ et $0.01 \leq v\leq 1$.
%matplotlib inline
from sympy.plotting import plot3d_parametric_surface
from sympy import cos,sin,tan,log,pi
from sympy.abc import u,v
plot3d_parametric_surface(cos(u)*sin(v), sin(u)*sin(v),cos(v)+log(tan(v/2))+u, (u,0,5*pi), (v,0.01,1))
<sympy.plotting.plot.Plot at 0x7f8b9a92b790>
Soit $p(x)=- x^{4} + 28 x^{3} - 221 x^{2} + 350 x + 600$ un polynôme. Trouver l'ensemble des valeurs de $x$ telles que $p(x)$ atteint un optimum local et dire s'il s'agit d'un minimum ou un maximum.
from sympy.abc import x
p = -x**4+28*x**3-221*x**2+350*x+600
p
from sympy import diff,solve
p_optimum = solve(diff(p, x), x)
p_optimum
from sympy import N
map(N, p_optimum)
p_xx = diff(p, x, x)
[(a, p_xx.subs(x, a).n()) for a in sorted(p_optimum)]
Réponse: p atteint des maximum en x=0.95 et x=13.04, car la dérivée seconde est négative en ces points
Réponse: p atteint un minimum en x=7, car la dérivée seconde est positive en ce point
Calculer l'aire de la région $A=\{(x,y):0\leq y\leq p(x)\}$ bornée supérieurement par le polynôme $p(x)$ et inférieurement par l'abscisse.
from sympy import plot
plot(p, (x,-5, 20), ylim=(-1000,1000))
<sympy.plotting.plot.Plot at 0x7f8b9886f510>
p_racines = solve(p, x)
p_racines
from sympy import integrate
aire = integrate(p, (x,-1,4)) + integrate(p, (x,10, 15))
aire
aire.n()
On considère la fonction $f(x)=x^{x\over 1-x}$ pour tout réel $x>0$. Donner le domaine de définition de $f$.
from sympy import oo
from sympy.abc import x
f = x**(x/(1-x))
f.subs(x,0), f.subs(x,1), f.subs(x,oo)
Réponse: le domaine est $[0, 1[\cup]1,\infty[$ si on accepte que $0^0=1$ est bien défini.
Calculer les limites de la fonction $f$ aux bornes des intervalles qui composent le domaine de $f$.
from sympy import limit
limit(f, x, 0)
limit(f, x, 1)
limit(f, x, oo)
Expliquez comment prolonger $f$ par continuité aux points $x=0$ et $x=1$.
Réponse: par le résultat des calculs des limites.
On considère les vecteurs $v_1=(-8, 1, -10, 1, 6)$, $v_2=(-6, -10, 2, 10, -3)$, $v_3=(-2, 8, 10, 1, 10)$, $v_4=(-14, -9, -8, 11, 3)$, $v_5=(-2, -3, 5, -8, -6)$. Donner une base du sous espace vectoriel engendré par $v_1$, $v_2$, $v_3$, $v_4$ et $v_5$.
v1=(-8, 1, -10, 1, 6)
v2=(-6, -10, 2, 10, -3)
v3=(-2, 8, 10, 1, 10)
v4=(-14, -9, -8, 11, 3)
v5=(-2, -3, 5, -8, -6)
from sympy import Matrix
M = Matrix([v1, v2, v3, v4, v5])
M
Mreduite, pivots = M.rref()
Mreduite
Le vecteur $w=(0, -6, -1, -8, 10)$ est-il dans ce sous-espace vectoriel?
w = (0, -6, -1, -8, 10)
M = Matrix([v1, v2, v3, v4, v5, w])
M.transpose().rref()
Réponse: NON, le système est incompatible
Si oui, l'exprimer comme combinaison linéaire des vecteurs de la base.