Je n'ai pas vu de différence entre les fichiers de suffixe asv et m, Mais comme je ne connais pas Matlab, c'est peut-être normal.
Je ne connais pas la fonction nthroot().
Mais il y a plusieurs choses que je remarque.
Il n'y a aucun contrôle de validité des paramètres a, b, c etc. En particuliers il faut vérifier que certains sont non nuls, parce qu'il sont des dénominateurs dans des divisions. Cette vérification est toujours indispensable.
J'ai pris l'exemple de l'équation du second degré.
1 2 3 4 5 6 7 8 9 10 11 12 13
|
delta=b^2-4*a*c
if delta > 0
x1 = (-b+sqrt(delta))/2;
x2 = (-b-sqrt(delta))/2;
elseif delta == 0
x1 = -q/2;
x2 = u^3;
else
x1 = (-q+i*sqrt(delta))/2;
x2 = (-q-i*sqrt(delta))/2;
end |
Vous testez si delta est positif, OK, c'est le cas général.
Puis si delta est nul, en pratique, cela n'arrive jamais.
Püis, donc delta est négatif. dans tous les langages que je connais, sqrt(Nombre_négatif) se plante.
je suppose que 'i' est tq i² == -1.
Mais êtes-vous sûr que cela puisse s'écrire comme cela? Moi, j'aurais plutôt écrit ... = sqrt(i² * delta).
Le calcul est faux il faut diviser encore par a.
.. x2 = u^3; me parait étonnant.
J'ai lu le calcul de l'équation de 4è degré, mais je n'ai rien vu de particulier d'autre que pour celle du 2è degré.
Partager