Programmation Octave/Calcul numérique

Résoudre des équations non-linéaires

modifier

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

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

 

Ou f est inconnue.

Minimiser une fonction

modifier

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