Programmation Octave/Calcul numérique

Un livre de Wikilivres.

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

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

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 zéro de la fonction:

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

On voit que le zéro se trouve entre 0 et 2 donc on peut choisir :

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

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

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

Ou f est inconnue.

Minimiser une fonction[modifier | modifier le wikicode]

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

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