ALS
Inscrit le: 11 Sep 2006 Messages: 647
|
Posté le: 29 Mai 2012 8:25 Sujet du message: Re |
|
|
Bonjour,
L'équation n'est pas linéaire en les coefficients, mais on peut utiliser une régression linéaire en écrivant l'équation y=(1/(-a*x+b))-(1/b) sous la forme:
x/y= (b-ax)b/a = -bx +b^2/a
On fait donc une régression linéaire de W=x/y en X grace à la fonction LinearFit du package Statistics.
En en déduit les coefficients -b et b^2/a, donc a et b.
Code: |
> restart:
> with(Statistics):
> X := Vector([1, 2, 3, 4, 5, 6], datatype=float):
> Y := Vector([0.029, 0.073, 0.15, 0.31, 0.85, -4.5], datatype=float):
> W:=Vector([seq(X[i]/Y[i],i=1..6)],datatype=float);
[34.4827586206897 ]
[ ]
[27.3972602739726 ]
[ ]
[ 20. ]
W := [ ]
[12.9032258064516 ]
[ ]
[5.88235294117647 ]
[ ]
[-1.33333333333333]
> P:=LinearFit([1,x], X, W, x);
P := 41.6275729810314 - 7.16348445605863 x
> b:=-coeff(P,x,1); solve(b^2/a=coeff(P,x,0),a): a:=%;
b := 7.16348445605863
a := 1.232728835
> plot(1/(b-a*x)-1/b,x=1..6,y=-10..10);
|
Les valeurs exactes attendues étaient a=1.23 et b:=7.15.
@+ |
|