« Programmation Octave » : différence entre les versions

Contenu supprimé Contenu ajouté
Aucun résumé des modifications
Ligne 1 :
{| width="70%" border="0" cellspacing="0" cellpadding="5"
'''Octave''' est à la fois un langage interpreté et un logiciel de calcul numérique distribué sous licence [[w:Licence publique générale GNU|GPL]]. Le language [[w:GNU Octave|Octave]] est compatible avec [[w:Matlab|Matlab]].
|-
*[http://www.gnu.org/software/octave/ Site officiel]
| bgcolor="#E0E0F0" align="center" colspan="2" |
{| width="100%" bgcolor="#E0E0F0"
|-
| bgcolor="#E0E0F0" valign="middle" width="90%" align="center" | <font size="+1">Octave</font>
 
''Un livre appartenant à [[Accueil/Informatique|L'étagère Informatique]] et [[ Accueil/Sciences de la nature et sciences exactes|Mathématiques]].
 
|-
== Résoudre un Système d'équations linéaires ==
|}
Durant tout ce chapitre, nous utiliserons comme exemple la résolution du [[w:Système d'équations linéaires|système]] suivant:
|- bgcolor="lightyellow" valign="top" colspan="2"
:<math>\left\{\begin{matrix} 2x_1+3x_2-x_3=-1 \\ x_1 - x_2 + 3x_3 = 4 \\2x_1-3x_2+x_3=3 \end{matrix}\right.</math>
| {{Sous section|nom=Programmation Octave/Sommaire|couleur=#E0E0F0|couleurbord=darkblue|couleurfond=white}}
ou, sous forme matricielle:
|-
:<math>A \cdot x = b \;</math>
| colspan="2" align="center" |
=== Définir un vecteur===
{|
Nous voulons définir le vecteur:
|-
<math>b =\begin{pmatrix}-1 \\ 4 \\ 3\end{pmatrix}</math>
| align="left" |
 
|-
Pour cela il faut entrer:
|}
octave> b = [-1 ; 4 ; 3]
b =|-
|}
-1
4
3
 
ou
octave> b = [-1 4 3]'
b =
-1
4
3
 
L'opérateur " ' " transpose un vecteur ou une matrice, on crée un vecteur ligne et on le transpose. Il faut noter qu'on peut aussi définir un vecteur par une suite :
octave:> x = 1:4
x =
1 2 3 4
octave> y = 10:-2:4
y =
10 8 6 4
Et, si on ajoute "'';''" à la fin de la ligne, Octave n'affiche pas le resultat.
 
=== Définir une matrice ===
Pour définir une [[w:Matrice (mathématiques)|matrice]], on procède comme pour le vecteur:
octave> A = [2 3 -1; 1 -1 3; 2 -1 3]
A =
2 3 -1
1 -1 3
2 -1 3
 
On peut aussi modifier une matrice ou un vecteur composante par composante:
octave> A(2,2) = -10
A =
2 3 -1
1 -10 3
2 -1 3
 
=== Résoudre le système ===
L'opérateur habituel pour résoudre un sytème linéaire est "\" :
octave> x = A\b
x =
-1
1
2
 
On peut verifier que <math>A \cdot x = b</math> :
octave> b2 = A*x
b2 =
-1
4
3
 
=== Décomposition LU ===
Avant de résoudre le système, on peut décomposer la matrice avec la [[w:Décomposition LU|décomposition LU]]:
octave> [L,U]= lu(A)
L =
1.00000 0.00000 0.00000
0.50000 0.62500 1.00000
1.00000 1.00000 0.00000
U =
2 3 -1
0 -4 4
0 0 1
 
puis :
octave> y = L\b
y =
-1
4
2
octave> x = U\y
x =
-1
1
2
 
== Algèbre linéaire ==
=== Opération sur les vecteurs ===
On peut calculer la norme d'un vecteur grace à la commande "''norm()''":
octave> x = [2 3 1 1 1];
octave> n = norm(x)
n = 4
 
La commande "dot" calcul le [[w:Produit scalaire|produit scalaire]] de deux vecteurs:
octave> y = [-1 1 2 1]
y =
-1 1 2 1
octave> x = [1 1 1 1]
x =
1 1 1 1
octave>z = dot(x,y)
z = 3
 
=== Opérations sur les matrices ===
Nous avons déja vu que nous pouvions multiplier des matrices et caluler leurs transposées. Mais Octave permet aussi de les élever à une puissance :
octave> A = [-1 2;2 0]
A =
-1 2
2 0
octave>B = A^4
B =
29 -18
-18 20
On peut aussi, grâce à la commande "''exp()''", calculer l'exponentielle de la matrice:
octave> E = exp(A)
E =
0.36788 7.38906
7.38906 1.00000
 
=== Matrices particulières ===
Octave fournit plusieurs fonctions pour créer des matrices particulières. Pour créer une matrice nulle, il faut se servir de la fonction "''zeros''":
octave> null = zeros(5, 3)
null =
0 0 0
0 0 0
0 0 0
0 0 0
0 0 0
 
La fonction "''eye''" crée une matrice identité.
octave:13> I = eye(3)
I =
1 0 0
0 1 0
0 0 1
 
La fonction "''diag()''" crée des matrices diagonales, sur-diagonales ou sous-diagonales à partir d'un vecteur:
octave>A = diag([1 2 3],0)
A =
1 0 0
0 2 0
0 0 3
octave>A = diag([1 2 3],2)
A =
0 0 1 0 0
0 0 0 2 0
0 0 0 0 3
0 0 0 0 0
0 0 0 0 0
octave>A= diag([1 2 3],-1)
A =
0 0 0 0
1 0 0 0
0 2 0 0
0 0 3 0
 
La fonction "''rand()''" crée une matrice dont les coefficients sont des nombres choisis aléatoirement entre 0 et 1:
octave> rand(2,3)
ans =
0.871644 0.651894 0.563654
0.076660 0.790505 0.275381
 
=== Calcul du derterminant ===
Pour calculer un [[w:Déterminant (mathématiques)|determinant]] il suffit d'utiliser la commande "''det()''":
octave> A = [1 -1 3; 4 -3 1; 2 -3 1]
A =
1 -1 3
4 -3 1
2 -3 1
octave> d = det(A)
d = -16
== Dessiner des graphiques de fonctions ==
=== Graphique en deux dimensions ===
Pour dessiner le graphique d'une fonction, il faut d'abord définir l'intervalle ou la fonction va prendre ses valeurs ici nous prenons <math>[0;2\pi]\;</math> et un pas de ''0.05'' entre chaque valeurs:
octave> x = [0:0.05:2*pi];
 
Ensuite grâce à la fonction "''plot()''" nous dessiner la fonction cosinus:
octave> plot(x,cos(x))
 
On peut aussi crée des graphiques de fonction discrète avec la fonction "''stem''":
octave> stem(x,cos(x))
[[catégorie:Mathématiques|Octave]]
[[catégorie:Informatique|Octave]]