J'essaie d'expérimenter avec des matrices pour résoudre des expressions polynomiales et cela a fonctionné jusqu'à présent.
dans mon code: p> tableau A est juste le Premières valeurs requises pour résoudre un quadratique. Array B est pour X ^ 2 + 1.
Donc, la sortie de la fonction devrait être la suivante: p> [1. 0. 1.] P> Au lieu de cela, je reçois:
[1.00000000E + 00 -8.32667268E-16 1.0000000000E + 00] P> Je reçois le e + 00, mais pourquoi la deuxième valeur "-8.32667268E-16" ??
J'ai vérifié mes mathématiques et il devrait être x ^ 2 + 1. p> p>
3 Réponses :
-8.326672688e-16 code> = -0.000000000000000008326 ... c'est un point d'arrondi de point flottant. Voir La documentation . P>
Bien techniquement, c'est -8x10 ^ (- 16) ~ = 0, d'où la réponse est correcte. Bien que vous puissiez le formater exactement 0 à l'aide d'une fonction sigmoïde ou simplement à l'aide du théorème de Rolle. P>
Parce que pendant les opérations matricielles, les chiffres sont légèrement arrondis. Essayez: sortie: p>
Y a-t-il un moyen de l'arrondir à un point décimal spécifique?
Oui: rond (n, 2) code> est la valeur par défaut, vous pouvez modifier le numéro.
Jusqu'à arrondi Erreur, que est i> zéro.
Comprenez-vous ce que
1e-16 code> représente?-8e-16 est un très petit nombre. Je pense qu'un point d'arrondi du point flottant s'est produit. Êtes-vous sûr d'avoir besoin de résoudre cette expression polynomiale avec 16 chiffres de précision?
Vous pourriez être intéressé par l'utilisation d'arithmétiques exactes au lieu d'un point flottant, qui est approximatif. Je n'ai pas vérifié, mais il semble probable que sympty.org) puisse faire de l'arithmétique avec des nombres rationnels, ce qui est exact. Surtout si vous travaillez avec des polynômes, la différence entre l'arithmétique exacte et approximative peut être substantielle.
Pour des solutions exactes, regardez SydMy