Sage (page en français)
est un logiciel libre que vous pouvez télécharger gratuitement puis utiliser sur votre ordinateur
La documentation ne manque pas :
- un survol alléchant en anglais ;
- une introduction ;
- un tutoriel
(version pdf) ;
- la référence ;
- des résumés dont un bien pratique .
On peut aussi utiliser Sage à distance sur
SageMathCell.
Vous pouvez l'utiliser tout de suite en rentrant les instructions que vous souhaitez (par exemple quelques lignes - peu nombreuses pour ne pas surcharger - extraites des exemples ci-dessous).
# Mise au point sur la méthode de Gauss sur K=Q (car arrondis sur R) x,y,z=var('x,y,z'); Sys=[4*x+2*y+z==5,2*x+y+z==4,-2*x-y+2*z==5] # un système solve(Sys,x,y,z) # solutions de "Sys" A = matrix(QQ,[[4,2,1],[2,1,1],[-2,-1,2]]); A # matrice en lignes de "Sys" B = matrix(QQ,[[5],[4],[5]]) # second membre de "Sys" dans Q^3 AB = block_matrix([[A,B]]); AB # matrice augmentée de "Sys" AB.echelon_form() # réduction par Gauss jusqu'à la matrice échelonnée (unique) X0 = A.solve_right(B); X0 # une solution particulière de "AX=B" KerA = A.right_kernel(); KerA # base du noyau de A A.eigenspaces_right() ImA = A.column_space(); ImA # base de span([transpose(A)[i] for i in range(3)]) # Exemple du II 1 sur K=Q quand lambda = -1 t = -1 v1 = vector([1,-1,0]); v2 = vector([0,1,-1]); v3 = vector([1,0,t]) # vecteurs C = transpose(matrix([v1,v2,v3])); C # vecteurs : lignes (sauf produit à droite) C.echelon_form() # réduction par Gauss jusqu'à la matrice échelonnée (unique) V = (QQ^3).span([v1,v2]); V # introduction de Vect(v1,v2) v3 in V # test de l'appartenance de v3 à Vect(v1,v2) # Exemple du II 2 sur K=Q A1 = matrix(QQ,[1,1,1]); A1 # une matrice ligne Pi1 = A1.right_kernel(); Pi1 # Pi1 est le noyau de A1 A2 = matrix(QQ,[1,2,0]); A2 # une matrice ligne Pi2 = A2.right_kernel(); Pi2 # Pi2 est le noyau de A2 D = Pi1.intersection(Pi2); D # Intersection de Pi1 et Pi2 S = Pi1 + Pi2; S # Somme de Pi1 et Pi2 a1 = Pi1.basis()[0]; b1 = Pi1.basis()[1]; a1, b1 # base de Pi1 a2 = Pi2.basis()[0]; b2 = Pi2.basis()[1]; a2, b2 # base de Pi2 S == (QQ^3).span([a1,a2,b1,b2]) # vérification d'un résultat du cours
# Dernier exemple du I 1 A11 = matrix([[0,1],[1,0]]); A12 = matrix([[1],[1]]); A21 = matrix([[2,1]]); A22 = matrix([[-1]]); M = block_matrix([[A11,A12],[A21,A22]]); B11 = matrix([[1,3],[2,4]]); B21 = matrix([[5,6]]); N = block_matrix([[B11],[B21]]); M*N # Exemple du I 2 et illustration du I 3 A = matrix([[5,4],[6,5]]); A.inverse() # inverse de A (variante : ~A) A.rank() # rang de A A.transpose() # transposée de A # Exemple du II 2 A = matrix(QQ,[[-4,12,-5],[1,-3,2],[2,-6,1]]) A.transpose().image() # matrice dont les lignes forment une base de l'image A.echelon_form() # pivot de Gauss pour avoir une "bonne" équation du noyau A.right_kernel() # matrice dont les lignes forment une base du noyau
# Exemple du II 1 x = var('x') taylor(1/(1-x),x,0,5) # DL5 de 1/(1-x) en 0 # Exemples du II 2 x = var('x') taylor(sin(x)*cos(x),x,0,3) # DL3 de sin(x)cos(x) en 0 taylor(exp(cos(x)),x,0,4) # DL4 de exp(cos(x)) en 0 taylor(tan(x),x,0,5) # DL5 de tan(x) en 0 # Exemples du II 3 x = var('x') taylor(atan(x),x,0,5) # DL5 de arctan(x) en 0 # Tangente utilisée pour le dessin du III t = var('t'); x = var('x') M = (1+2*t+t^2,1+t+4*t^2) [taylor(M[0],t,0,2),taylor(M[1],t,0,2)] # DL2 de M en 0 Courbe = parametric_plot(M,(t,sqrt(0.2)-1,sqrt(2)-1)) D = plot(x/2+1/2,(x,-0.5,2.9)) show(Courbe+D,xmin=-0.5, xmax=3.3, ymin=-0.5, ymax=2.3) # Asymptote utilisée pour le dessin du III x = var('x') f = x/2+1/2+2^(-3/2*x) h = var('h'); taylor(f.subs(x=1/h),h,0,2) # DL2 de f en +infini Graphe = plot(f,(x,0.2,2.9)) D = plot(x/2+1/2,(x,-0.5,2.9)) show(Graphe+D,xmin=-0.5, xmax=3.3, ymin=-0.5, ymax=2.3)
# Exemples de la fin du I 2 x = var('x') integrate((1+x)^2,x,0,1) integrate(sin(x),x,0,1) # Exemples du II 1 x = var('x') integrate(sqrt(1-x^2),x,-1,1) integrate(sqrt(1-x^2),x) integrate(ln(x),x) # Exemples du II 2 x = var('x') F1(x) = 1/(x^3+1) F1.partial_fraction(x) F2(x) = (x^5+x^4+x^2+1)/(x^3-x^2-x+1) F2.partial_fraction(x) integrate(F1(x),x) integrate(F2(x),x) # Exemples du II 3 x = var('x') integrate(1/sin(x),x) # Résultat à interpréter !
# Exemple du I 1 y = var('y') Tangentes = plot_slope_field(y^3,(x,-3.9,4.4),(y,-2.4,2.9)) y = function('y')(x) # y est une fonction de x -> change sens ligne ci-dessus phi0 = desolve(diff(y,x)==y^3,dvar=y,ics=[0,1]) # solution évaluée Courbe = plot(1/sqrt(1-2*x),-3.7,0.43) # solution précisée show(expand(phi0)); show(Tangentes+Courbe) # Exemple du I 2 y = function('y')(x) desolve(diff(y,x)==2*y/x+1,dvar=y).expand() # ".expand()" permet de simplifier # Exemple du II 2 y = function('y')(x) desolve(diff(y,x,2)-y==e^x,dvar=y)
. | XHTML 1.0 Strict |