Spaces:
Sleeping
Sleeping
PyxiScience — Catalogue des fonctions (helpers à utiliser DANS le bloc Python)
Workflow : scanner l'exercice → identifier le domaine (analyse / algèbre linéaire / proba / formatage) → récupérer ici les fonctions utiles et leur signature exacte AVANT d'écrire du code. Tout affichage passe par un helper du catalogue appelé dans le bloc Python, résultat rangé dans une variable
…Affinjectée nue. Ne jamais réimplémenter une fonction qui existe ici.
0. Conventions critiques
- Expression/scalaire →
latex(expr, **config_standard)(voie par défaut, prouvée sur le corpus livré).pxsl_latex(expr)existe (convention maison, réordonne sireverse=True) mais n'est pas le défaut. Matrice →pxsl_matrix(...). Résultat numérique →pxsl_res_num(...). config_standard = pxs_config()en tête de bloc, puis**config_standardpassé àlatex(...)(notationln, séparateur FR,, ordre des termes).**config_standardest réservé àlatex()— jamais sur un helperpxsl_*.- Nom Python réservé :
totalinterdit →nb_total. - Ne jamais concaténer un signe : construire la chaîne complète
(
pxsl_latex_coefficient(c, sign=True)) puis injecter la variable seule.
2. Briques quasi toujours utiles
pxs_config()→config_standard.latex(expr, **config_standard)→ toute sortie scalaire/expression.pxsl_latex_coefficient(c, sign=, ones=)→ coefficients signés sans1·x/+0.pxsl_res_num(x, dec=, egal=)→ résultat numérique formaté (= 0,2354,23,54 %).pxsl_pow(x, n)→ puissance avec parenthèses si base négative/irrationnelle.
4. Généralistes — formatage & LaTeX (Mes_fctions_generalistes_bis.py)
pxs_config()→ dict d'options LaTeX (ln, virgule FR, ordre).**config_standard.latex(expr, **config_standard)— voie par défaut.pxsl_latex(expr, reverse=False)= variante maison (réordonne du degré faible au fort sireverse=True).pxsl_sign(expr)→'+'/'-'/''. Construire un signe à part AVANT injection.pxsl_format_number(n)→ milliers en espaces fines, gère±∞. (Aucun kwarg — pas d'arrondi, arrondir avant.)pxsl_format_number(1234)→'1\ 234'.pxsl_latex_with_formatting(expr, sign=False, display=True)→latex()+ milliers (≥1000), y compris dans les fractions.pxsl_latex_coefficient(coeff, variable=None, sign=False, zeros=True, ones=False, display=True)→ gère1→'',-1→'-'(ou'-1'siones=True), signe explicite. Aliaslc.pxsl_to_rational_or_symbol(value)→RationalSymPy précis (via Fraction) ; laisse un Symbol.pxsl_solve_general_inequality(a=1, b=0, c=0, variable='x', inequality='>=', domain='R', power=1, sign_a=None)→ résouta·x^p+b ⋛ c(p=1 ou 2) + rédaction LaTeX complète. Retour(solution_set, latex_reasoning).pxsl_Rational(num, den, orientation='v', display=True)→ fraction « propre »π/2,x/2(simplifie le numérique, garde le symbolique). ⚠️ ZeroDivisionError si den=0.pxs_is_reductible_sqrt(x)→ bool (carré parfait sous la racine).pxs_separate_factors(expr, var)→(indépendants de var, dépendants de var).
5. Analyse — intégration par parties (Mes_fctions_d_analyse_bis.py)
pxs_explain_IBP(var=Symbol('x'), f1=None, f2=None, type_int='udv', a=None, b=None, nb_IBP=1, intro=True, conclude=True)→ rédaction LaTeX complète d'un calcul par IPP (intégrale définiea,bou primitive ; une ou deux IPP). Pour « calculer ∫ u·v′ par IPP ».type_int='udv'/'vdu'. RetourstrLaTeX prêt à injecter. Ex.ipp = pxs_explain_IBP(f1=x, f2=exp(x), type_int='udv', a=0, b=1)→{{ipp}}.pxsl_par(expr, minus=False, add=False)→ parenthèses si l'expression commence par-ou est une somme (Add). Sécurise un facteur.pxsl_final_sentence(sol, a, b, var, mult, *args)→ phrase finale d'une IPP multi-étapes.
6. Algèbre linéaire — matrices & systèmes (Mes_fctions_d_alg_lineaire_bis.py)
pxsl_*AFFICHENT (LaTeX) ;pxs_*GÉNÈRENT/CALCULENT.sepG/sepD= délimiteurs ('('/')'défaut ;'|'/'|'pour un déterminant).
pxsl_pow(x, n=1, opt=0, displaystyle=True)→x^navec parenthèses si base négative/irrationnelle.pxsl_pow(-3,2)→'\left(-3\right)^{2}'.pxsl_matrix(A, sepG='(', sepD=')', display=False)→ matrice LaTeX (nombres alignés à droite) ;'|','|'→ déterminant.pxsl_sum_matrix(A, B, s='+')→ détail case par case deA±B.pxsl_prod_scalar_matrix(lamb, A, mult='times')→ détail deλ·A.pxsl_prod_matrix(A, B, mult='times')→ détail du produitA·B.pxsl_ax(a, x=Symbol('x'), sign=' ', frac=True)→axen géranta=0/1/−1;xsymbole quelconque (L_{1}).pxsl_system_lin(A, B, x='x')→ systèmeAx=Ben forme accolade.pxsl_double_matrix(A, B, opt='sep')→AetBcôte à côte ('sep') ou matrice augmentée ('ext').pxsl_lines_op(n, listOp, opt='sys')→ opérationL_{i} ← a·L_{i}+b·L_{j}depuislistOp=[a,i,b,j].pxsl_resol_system(listA, listB=[], listOp=[], x='x', method='sys', view='sep')→ chaque étape d'une élimination (method:'sys'/'mat'/'ech').pxs_steps_invert_matrix(A, B, method='sys')→ résolution de système (B) ou inversion (B=eye(n),method='mat'), rédaction LaTeX complète.pxs_compute_ech(A)/pxs_compute_ech_reduite(A)→ forme échelonnée / RREF avec étapes en LaTeX. (Équivalents depxs_construct_RREF.)pxs_system_simpl(n=3, opt='sys', max_coef=2, limit_sum=15)→ génère(A, B)d'un systèmeAx=Bà solution entière simple.pxs_commute_matrix(n, opt='')→(A,B)qui commutent et(A,C)qui non.pxsl_pow_matrix(A, k)→ chaque coefficient élevé à la puissancek.pxs_invertible_matrix(n)/pxs_diag_matrix(p, a, b)/randmatrixrect(p, q, a, b)→ matrice inversible / diagonale / rectangulaire aléatoire (coeffs entiers).
7. Probabilités — variables aléatoires finies (Mes_fctions_probabilistes_bis.py)
v.a. finies SymPy (
stats.FiniteRV).pxsl_*affichent ;pxs_*construisent.
pxs_finiterv(x, val, prob)→ v.a.xde valeursvalet probasprob. Ex.X = pxs_finiterv('X', [0,1,2], [Rational(1,4),Rational(1,2),Rational(1,4)]).pxsl_law(textx, textprob, X, frac='', nzero=True)→ tableau de loi (valeurs / probas) en LaTeX.textx/textprob= en-têtes.pxsl_moment(X, n=1, prod='times')→ calcul détaillé deE[Xⁿ](espérance/variance).pxsl_scalar_product(a, b, prod='times')→ calcul dea·b = Σ aᵢbᵢ.pxs_simul_law(n, type_proba='dec', prec=0.01)→ simule une loi discrète de taille n.pxs_fct_finiterv(f, X)→ v.a.Y = f(X). Ex.Y = pxs_fct_finiterv(lambda t: t**2, X).pxsl_res_num(x, dec=4, pourc=False, text=False, egal=True, dot=True)→ résultat numérique (= 0,2354,23,54 %).egal=Falseretire le préfixe.pxsl_sum_vector(x)→Σ xᵢen LaTeX.pxs_nvirgzero(x)→ supprime.0d'un float entier (tolérance 1e-10).pxsl_pow(...)aussi présent ici (identique à §6).
8. Utilitaires complémentaires (présence runtime à vérifier)
⚠️ NON présents dans le corpus embarqué — ne les utiliser que si la plateforme les charge au runtime (sinon coder l'équivalent à la main) :
indi_l_r_symb(l, alpha, beta, r)→ fonction indicatrice symbolique1_{[α,β]}.f = indi_l_r_symb('[',0,1,']'); f(x).pxs_round(x, ndigits=0)→ arrondi « calculatrice » (half-up, pas banker's).pxs_round(0.125,2)→0.13.Poly_with_random_coef(symbol, deg, constant_coef)→ polynôme aléatoire (coeffs[-9,9]) + LaTeX croissant/décroissant.
3. Primitives plateforme (référencées, non dans ces modules)
{{ var }}— interpolation MyST (un nom de variable nu, voir règles).myst(...)— rendu plateforme (stubbé en local). Les\fr{}\en{}legacy ne rendent pas → utiliser{fr}`…`{en}`…`.pxsl_mat(...)— alias plateforme ; équivalent présent =pxsl_matrix.pxs_Interval(...)— affichage d'intervalle (présent dans Classes_Extensions.py).