Programmation Octave/Calcul numérique

Un livre de Wikibooks.

Octave
L'étagère Informatique
et
Mathématiques.
Octave
Sommaire
Bibliographie
Autres cours
Modifier ce modèle

[modifier] Résoudre des équations non-linéaires

La commande "fsolve("f",x0)" permet de donner une approximation de la solution à l'équation f(x) = 0 en partant du nombre initiale "x0". Par exemple si on veut résoudre:

x^3 - x^2 + 5x - 8 = 0\,

Il faut d'abord définir la fonction:

octave> function [y] = f(x)
> y = x.^3 - x.^2 + 5.*x -8
> endfunction

Ensuite on dessine le graphique de la fonction pour voir approximativement ou se situe le zero de la fonction:

octave> x = -5:0.1:5;
octave> plot(x,f(x));

On voit que le zero se trouve entre 0 et 2 donc on peut choisir x0 = 1.5:

octave> z = fsolve("f",1.5)
y =  0.62500
y =  0.62500
y =  0.017493
y =  5.0709e-04
y =  4.2678e-07
y =  1.0425e-11
y = 0
z =  1.4265

Ensuite on vérifie la solution:

octave> y = f(z)
y = 0
y = 0

[modifier] Résoudre des équations différentielles du premier ordre

La commande "lsode" permet de resoudre des équations du type:

f'(t) = g(f(t),t)\,

Ou f est inconnue.

[modifier] Minimiser une fonction

fmins permet de minimiser une fonction de plusieurs variables. Par exemple si on veut minimiser

f(x_1,x_2) = (x_2-1)^2 + (x_1-3)^2 \,

avec le vecteur initial (1,0). il suffit de faire :

octave> F = @(x) (x(2)-1)^2 + (x(1)-3)^2;
octave> fmins(F,[1 0])
ans =

  3   1