Bonjour,
J'essaye de faire l'exercice 3 du final P20, mais je ne tombe pas sur le résultat attendu.
Voici mon code :
data = [ 0. 1.0140272
1. 0.3539748
2. -0.2049914
3. -0.2787802
4. -0.1863459
5. -0.095575
6. -0.0918984
7. -0.0146713
8. -0.0536165
9. 0.0238807
10. -0.0903517
0. 0.9910492
1. 0.4189767
2. -0.1106721
3. -0.2660769
4. -0.1800888
5. -0.0920536
6. -0.099392
7. -0.0225214
8. 0.0098232
9. -0.0368559
10. -0.0123621
0. 0.9901843
1. 0.3558912
2. -0.099514
3. -0.2344031
4. -0.1836291
5. -0.0982159
6. -0.1151818
7. -0.0462578
8. -0.0138438
9. -0.0109252
10. 0.0142542];
function r = resid(x,n)
a=x(1);
b=x(2);
c=x(3);
r = (a+b*t+c*t.^2).*exp(-t) - y;
endfunction
clf
t=data(:,1)
y=data(:,2)
plot(t,y,"o")
x0 = [1;1;1];
x = lsqrsolve(x0, resid, length(y));
a=x(1);
b=x(2);
c=x(3);
plot(t,(a+b*t+c*t.^2).*exp(-t));
Et voici la courbe que j'obtiens :
J'ai pensé à une erreur de détermination de la jacobienne par la fonction lsqrsolve. J'ai donc calculé la dérivée du vecteur résidu et l'ai ajouté dans l'appel de lsqrsolve, mais l'erreur suivante s'affiche : Nombre d'arguments d'entrée erroné.
function J=fjac(x)
a=x(1);
b=x(2);
c=x(3);
J = (-a+b-b*t+2*c*t-c*t.^2).*exp(-t);
endfunction
x = lsqrsolve(x0, resid, length(y), fjac);
Serait-il possible de me fournir une aide afin que je puisse résoudre mon problème s'il vous plait ?
Merci d'avance,
Cordialement.