knitr::opts_chunk$set(echo = TRUE)
#set.seed(12345)

Utilisation de R pour produire du code LaTeX en algèbre linéaire

Initialisation de la librairie

Nous devons installer la librairie. Si vous n'avez pas la librairie devtools, vous devez l'installer.

install.packages("devtools")

Vous installer ensuite la librairie à l'aide de la commande suivante:

devtools::install_github("desautm/linalgr")

Vous pouvez charger la librairie:

library(linalgr)

Affichage de matrices

Nous allons définir quelques matrices:

m <- 5
n <- 5
A <- matrix(sample(-10:10, m*n, replace = TRUE), m, n)
B <- matrix(sample(-10:10, m, replace = TRUE), m, 1)

Voici l'affichage directement avec R:

A
B

Affichage avec la librairie linalgr

Pour afficher, il faut utiliser l'option results = 'asis' dans le bloc de code R.

Voici l'affichage en utilisant la librairie.

mat2latex(A)
mat2latex(B)
mat2latex(A)
mat2latex(B)

Affichage de SEL

Affichage de systèmes d'équations linéaires

sel2latex(A,B, variables = "xi")
sel2latex(A,B, variables = "xi")

Affichage de systèmes matriciels

sel2latex(A,B, sel = FALSE, variables = "xi")
sel2latex(A,B, sel = FALSE, variables = "xi")

Nous pouvons changer les variables utilisées

sel2latex(A,B, variables = "a")
sel2latex(A,B, variables = "a")

ou alors...

sel2latex(matrix(sample(-10:10,4),2,2),matrix(sample(-10:10,4),2,1), variables = "x")
sel2latex(matrix(sample(-10:10,4),2,2),matrix(sample(-10:10,4),2,1), variables = "x")

Affichage avec des fractions décimales et contrôle du nombre de chiffres à droite de la virgule

sel2latex(A/3,B, variables = "xi", digits = 3)
sel2latex(A/3,B, variables = "xi", digits = 3)

Avec des fractions ordinaires

Mode en ligne

sel2latex(A/3,B, variables = "xi", style = "inline")
sel2latex(A/3,B, variables = "xi", style = "inline")

Mode commande frac

sel2latex(A/3,B, variables = "xi", style = "frac")
sel2latex(A/3,B, variables = "xi", style = "frac")

Matrices creuses

C <- matrix(c(-2, 2, 0, 0, 0, 0, 0, 0,
              3, 4, -5, 0, 0, 0, 0, 0,
              0, 3, 1, 0, 0, 0, 0, 0,
              0, 0, -1, -1, -1, 0, 0, 0,
              0, 0, 0, 3, 4, 7, 0, 0,
              0, 0, 0, 0, -6, 6, 1, 0,
              0, 0, 0, 0, 0, 1, 1, 1,
              0, 0, 0, 0, 0, 0, -1, 4), 8, 8, byrow = TRUE)
D <- matrix(c(1,2,3,4,5,6,7,8), 8, 1)

Option de base

sel2latex(C, D, variables = "xi")
sel2latex(C, D, variables = "xi")

Option concise

sel2latex(C, D, variables = "xi", concise = TRUE)
sel2latex(C, D, variables = "xi", concise = TRUE)

Création de SEL

Solution unique (matrice échelon)

E <- create_sel(4,4, type = "unique")
sel2latex(E$A, E$B, variables = "xi")
rref(E$A, E$B, style = "inline", echelon = TRUE)
rref_entier(E$A, E$B, style = "inline", echelon = TRUE)
E <- create_sel(4,4, type = "unique")
sel2latex(E$A, E$B, variables = "xi")
rref(E$A, E$B, style = "inline", echelon = TRUE)
rref_entier(E$A, E$B, style = "inline", echelon = TRUE)

Solution unique

E <- create_sel(4,4, type = "unique")
sel2latex(E$A, E$B, variables = "xi")
rref(E$A,E$B,style = "inline")
rref_entier(E$A,E$B,style = "inline")
E <- create_sel(4,4, type = "unique")
sel2latex(E$A, E$B, variables = "xi")
rref(E$A,E$B,style = "inline")
rref_entier(E$A,E$B,style = "inline")

Aucune solution

E <- create_sel(4,4, type = "aucune")
sel2latex(E$A, E$B, variables = "xi")
rref(E$A,E$B,style = "inline")
rref_entier(E$A,E$B,style = "inline")
E <- create_sel(4,4, type = "aucune")
sel2latex(E$A, E$B, variables = "xi")
rref(E$A,E$B,style = "inline")
rref_entier(E$A,E$B,style = "inline")

Infinité de solutions

E <- create_sel(4,4, type = "infinite")
sel2latex(E$A, E$B, variables = "xi")
rref(E$A,E$B,style = "inline")
rref_entier(E$A,E$B,style = "inline")
E <- create_sel(4,4, type = "infinite")
sel2latex(E$A, E$B, variables = "xi")
rref(E$A,E$B,style = "inline")
rref_entier(E$A,E$B,style = "inline")

Autres essais

E <- create_sel(6,6, type = "unique", solution = c(1,2,3,4,5,6))
sel2latex(E$A, E$B, variables = "xi")
rref_entier(E$A,E$B,style = "inline")
E <- create_sel(6,6, type = "unique", solution = c(1,2,3,4,5,6))
sel2latex(E$A, E$B, variables = "xi")
rref_entier(E$A,E$B,style = "inline")


desautm/linalgr documentation built on May 28, 2019, 2:52 p.m.