« Programmation Octave/Calcul numérique » : différence entre les versions

De testwiki
Aller à la navigation Aller à la recherche
imported>DavidL
Aucun résumé des modifications
 
(Aucune différence)

Dernière version du 22 juillet 2022 à 19:55

Modèle:Programmation Octave

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:

x3x2+5x8=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 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 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

Résoudre des équations différentielles du premier ordre

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

f(t)=g(f(t),t)

Ou f est inconnue.

Minimiser une fonction

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

f(x1,x2)=(x21)2+(x13)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