math_ds.py

Created by dan-tabet

Created on April 03, 2026

7.23 KB


# --- TABLEAU DES PRIMITIVES ---
# Format : "Fonction f" : "Primitive F + C"

PRIMITIVES = {
    # --- Fonctions usuelles ---
    "k"           : "kx",
    "x^n"         : "x^(n+1) / (n+1)",
    "1 / sqrt(x)" : "2 * sqrt(x)",
    "1 / x^n"     : "-1 / ((n-1) * x^(n-1))",
    "e^x"         : "e^x",
    "cos(x)"      : "sin(x)",
    "sin(x)"      : "-cos(x)",

    # --- Fonctions composées (u) ---
    "u' * u^n"    : "u^(n+1) / (n+1)",
    "u' / sqrt(u)": "2 * sqrt(u)",
    "u' / u^n"    : "-1 / ((n-1) * u^(n-1))",
    "u' / u"      : "ln|u|",
    "u' * e^u"    : "e^u",
    "u' * cos(u)" : "sin(u)",
    "u' * sin(u)" : "-cos(u)"
}

# Correction du Travail de Groupe n°7 - Géométrie dans l'espace
# Repère orthonormé (A; AB, AD, AE) 

# --- PARTIE A : CONSTRUCTION ET COORDONNÉES ---

# Définition des sommets de base du cube (unité = 1 côté du cube)
A = (0, 0, 0) # Origine du repère 
B = (1, 0, 0) # Vecteur AB 
D = (0, 1, 0) # Vecteur AD 
E = (0, 0, 1) # Vecteur AE 
C = (1, 1, 0) # Sommet opposé à A sur la base ABCD
H = (0, 1, 1) # Sommet opposé à B sur la face latérale ADHE

# 1. Calcul des coordonnées des points I, J et K [cite: 17]
# Vecteur AI = AB + 1/3 AD [cite: 19]
I = (1, 1/3, 0) 

# Vecteur AJ = 2/3 AD + AE [cite: 19]
J = (0, 2/3, 1)

# Vecteur AK = 3/4 AB + AE [cite: 18]
K = (3/4, 0, 1)

# 2. Vecteurs directeurs [cite: 20]
# Formule : Vecteur(X2-X1, Y2-Y1, Z2-Z1)
vecteur_IJ = (J[0]-I[0], J[1]-I[1], J[2]-I[2]) # (-1, 1/3, 1) [cite: 64, 87]
vecteur_IK = (K[0]-I[0], K[1]-I[1], K[2]-I[2]) # (-1/4, -1/3, 1) [cite: 65, 78]

# 3. Justification du point L sur l'arête [CD] [cite: 21]
# Tout point sur [CD] a une ordonnée y=1 et une cote z=0.
# Son abscisse 'a' varie entre 0 (D) et 1 (C)[cite: 22].
# L = (a, 1, 0)


# --- PARTIE B : CALCULS AVEC a = 1/4 [cite: 24, 25] ---

a = 1/4
L = (a, 1, 0) # L(1/4, 1, 0)

# 1. Démontrer que IKJL est un parallélogramme [cite: 26]
# On compare les vecteurs IK et LJ
vecteur_LJ = (J[0]-L[0], J[1]-L[1], J[2]-L[2]) # (-1/4, -1/3, 1) [cite: 77, 79]

# Puisque vecteur_IK == vecteur_LJ, IKJL est un parallélogramme[cite: 81].

# 2. Centre du parallélogramme [cite: 27]
# C'est le milieu de la diagonale [IJ] [cite: 82]
centre_IKJL = (
    (I[0] + J[0]) / 2, # (1 + 0) / 2 = 0.5
    (I[1] + J[1]) / 2, # (1/3 + 2/3) / 2 = 0.5
    (I[2] + J[2]) / 2  # (0 + 1) / 2 = 0.5
)
# centre_IKJL = (0.5, 0.5, 0.5) [cite: 83, 84, 85]

# 3. Intersection des droites (IJ) et (BH) [cite: 33]
# Droite (IJ) : x = 1-t, y = 1/3 + 1/3t, z = t [cite: 29]
# Droite (BH) : B(1,0,0) et H(0,1,1). Vecteur BH(-1, 1, 1) [cite: 91]
# Équations (BH) : x = 1-k, y = k, z = k [cite: 93]

# Pour l'intersection, on égalise les z : t = k.
# On remplace dans les y : 1/3 + 1/3t = t => 1/3 = 2/3t => t = 0.5.
# Si t = 0.5, alors x = 1 - 0.5 = 0.5.
point_intersection = (0.5, 0.5, 0.5) # 

# 4. Le centre du cube appartient-il au plan (IJK) ? [cite: 34]
# Le centre du cube est le milieu de [AG], soit (0.5, 0.5, 0.5).
# C'est exactement le point d'intersection trouvé précédemment et le centre
# du parallélogramme IKJL qui appartient au plan (IJK).
# Réponse : OUI.



LN
"""
FICHE DE RÉVISION : LE LOGARITHME NÉPÉRIEN (ln)
Niveau : Terminale Spé Maths
"""

import math

# --- 1. PROPRIÉTÉS ALGÉBRIQUES ---
# Soient a > 0 et b > 0

def proprietes_algebriques(a, b, n):
    # Relation fondamentale : le produit devient somme
    # ln(a * b) = ln(a) + ln(b)
    
    # Le quotient devient différence
    # ln(a / b) = ln(a) - ln(b)
    
    # L'inverse
    # ln(1 / a) = -ln(a)
    
    # La puissance (n est un entier)
    # ln(a**n) = n * ln(a)
    
    # La racine carrée
    # ln(sqrt(a)) = 0.5 * ln(a)
    pass

# --- 2. RELATIONS AVEC L'EXPONENTIELLE ---
# La fonction ln est la réciproque de la fonction exp

def relations_exp():
    # ln(1) == 0
    # ln(math.e) == 1
    
    # Pour tout x réel :
    # ln(exp(x)) == x
    
    # Pour tout x > 0 :
    # exp(ln(x)) == x
    pass

# --- 3. ANALYSE ET VARIATIONS ---
# Domaine de définition : ]0 ; +inf[

def analyse_fonction():
    # Dérivée de ln(x) :
    # f'(x) = 1 / x
    
    # Dérivée d'une forme composée ln(u) :
    # (ln(u))' = u' / u  (avec u(x) > 0)
    
    # Limites aux bornes :
    # lim x->0+  ln(x) = -inf
    # lim x->+inf ln(x) = +inf
    pass

# --- 4. CROISSANCES COMPARÉES ---
# "L'exponentielle gagne sur x, et x gagne sur le ln"

def croissances_comparees():
    # lim x->+inf (ln(x) / x) == 0
    # lim x->0+   (x * ln(x)) == 0
    pass

# --- 5. RAPPEL RÉSOLUTIONS D'ÉQUATIONS ---
# ln(a) = ln(b)  <=>  a = b (avec a, b > 0)
# ln(x) = k      <=>  x = exp(k)

Vecteur 
"""
FICHE DE RÉVISION : VECTEURS ET GÉOMÉTRIE DANS L'ESPACE
Niveau : Terminale Spé Maths
"""

import math

# --- 1. CALCULS DE BASE ---
def calculs_de_base(xA, yA, zA, xB, yB, zB):
    # Vecteur AB
    # AB_vec = (xB - xA, yB - yA, zB - zA)
    
    # Distance AB (Norme)
    # distance = sqrt((xB-xA)**2 + (yB-yA)**2 + (zB-zA)**2)
    
    # Milieu du segment [AB]
    # milieu = ((xA+xB)/2, (yA+yB)/2, (zA+zB)/2)
    pass

# --- 2. PRODUIT SCALAIRE ET ANGLE ---
def produit_scalaire(u, v):
    """
    u et v sont des listes [x, y, z]
    """
    # Formule analytique
    # dot_product = u[0]*v[0] + u[1]*v[1] + u[2]*v[2]
    
    # Test d'orthogonalité
    # si dot_product == 0 alors u et v sont orthogonaux
    
    # Pour l'angle : cos(theta) = (u.v) / (||u|| * ||v||)
    pass

# --- 3. DROITES ET PLANS ---
def geometrie_analytique():
    # DROITE : Système d'équations paramétriques
    # x = xA + k*a
    # y = yA + k*b
    # z = zA + k*c
    
    # PLAN : Équation cartésienne
    # a*x + b*y + c*z + d = 0
    # (a, b, c) sont les coordonnées du VECTEUR NORMAL au plan
    pass

# --- 4. PROPRIÉTÉ DE COLLINÉARITÉ ---
# u et v sont colinéaires s'il existe un réel k tel que u = k*v
# Cela signifie que leurs coordonnées sont proportionnelles.

# --- ÉTAPE 1 : DÉFINITION DU CADRE ---
# On définit les points comme des objets (x, y, z)
Point_A = (2, 0, 1)
Point_B = (1, 2, 2)
Vecteur_Normal_n = (2, -1, 2)

# --- ÉTAPE 2 : LOGIQUE VECTORIELLE ---
# Calculer AB revient à faire la différence des coordonnées
Vecteur_AB = (xB - xA, yB - yA, zB - zA)

# Vérifier si deux vecteurs sont orthogonaux
# Formule : x*x' + y*y' + z*z'
Produit_Scalaire = (x_n * x_AB) + (y_n * y_AB) + (z_n * z_AB)

SI Produit_Scalaire == 0:
    Afficher("Le vecteur n est orthogonal au vecteur AB")

# --- ÉTAPE 3 : LOGIQUE DU PLAN ---
# Un plan (P) est défini par ax + by + cz + d = 0
# Les coefficients (a, b, c) sont les coordonnées du vecteur normal n
a, b, c = Vecteur_Normal_n

# Pour trouver 'd', on utilise le fait que A appartient au plan :
# d = -(a*xA + b*yA + c*zA)
d = - (a * Point_A.x + b * Point_A.y + c * Point_A.z)

Afficher("L'équation du plan est : ax + by + cz + d = 0")

# --- ÉTAPE 4 : INTERSECTION DROITE-PLAN ---
# Une droite est définie par un point D et un paramètre 't'
# x(t) = xD + t * ux
# y(t) = yD + t * uy
# z(t) = zD + t * uz

# Pour trouver l'intersection, on remplace x, y, z dans l'équation du plan :
# a(xD + t*ux) + b(yD + t*uy) + c(zD + t*uz) + d = 0

# On isole 't' par le calcul suivant :
Numérateur = -(a*xD + b*yD + c*zD + d)
Dénominateur = (a*ux + b*uy + c*uz)

t_intersection = Numérateur / Dénominateur

# Une fois 't' trouvé, on récupère le point I(x, y, z)
Point_I = Droite(t_intersection)

During your visit to our site, NumWorks needs to install "cookies" or use other technologies to collect data about you in order to:

With the exception of Cookies essential to the operation of the site, NumWorks leaves you the choice: you can accept Cookies for audience measurement by clicking on the "Accept and continue" button, or refuse these Cookies by clicking on the "Continue without accepting" button or by continuing your browsing. You can update your choice at any time by clicking on the link "Manage my cookies" at the bottom of the page. For more information, please consult our cookies policy.