Scilab Function

fsolve - résout un système d'équations non-linéaires

Calling Sequence

[x [,v [,info]]]=fsolve(x0,fct [,fjac] [,tol])

Parameters

Description

Résout un système de n équations non linéaires à n inconnues avec un algorithme du type méthode hybride de Powell. La Jacobienne peut être fournie (c'est fortement conseillé).

      0 = fct(x) 
      

fct est une fonction "externe" Cette fonction renvoie v=fct(x) pour x donné.

La séquence d'appel de fct est :

      [v]=fct(x).
      

Si fct est une chaîne de caractères, elle désigne le nom d'une subroutine Fortran ou C liée dynamiquement à Scilab, avec comme liste d'appel Fortran :

      fct(n,x,v,iflag)
      integer n,iflag
      double precision x(n),v(n)
      

ou alors pour une routine C :

      fct(int *n, double x[],double v[],int *iflag)
      

(voir link ).

jac est une fonction "externe" aussi. Cette fonction renvoie v=d(fct)/dx (x) pour x donné.

La séquence d'appel de jac est :

      [v]=jac(x).
      

Si jac est une chaîne de caractères, elle désigne le nom d'une subroutine Fortran ou C liée dynamiquement à Scilab. Les séquences d'appel sont les mêmes que pour fct (attention v doit être un tableau n x n).

Examples

    // un exemple simple
    a=[1,7;2,8];b=[10;11];
    deff('[y]=fsol1(x)','y=a*x+b');
    deff('[y]=fsolj1(x)','y=a');
    [xres]=fsolve([100;100],fsol1);
    a*xres+b
    [xres]=fsolve([100;100],fsol1,fsolj1);
    a*xres+b
    // voir routines/default/Ex-fsolve.f
    [xres]=fsolve([100;100],'fsol1','fsolj1',1.e-7);
    a*xres+b
    

See Also

external ,   quapro ,   linpro ,   optim ,