Sympy

Logiciel capture d'écran:
Sympy
Détails logiciels:
Version: 0.7.2
Date de transfert: 20 Feb 15
Développeur: Ondrej Certik
Licence: Gratuit
Popularité: 54

Rating: 4.5/5 (Total Votes: 2)

sympy est un package de manipulation symbolique open source, écrit en Python pur.
L'objectif de sympy est de devenir un CAS très complet en Python, alors que le code est aussi simple que possible de sorte qu'il peut être facilement extensible et compréhensible

Caractéristiques :.

  • l'arithmétique de base *, /, +, -
  • simplification de base (comme a * b * b + 2 * b * a * b - & gt; 3 * a * b ^ 2)
  • expansion (comme (a + b) ^ 2 - & gt; a ^ 2 + 2 * a * b + b ^ 2)
  • Fonctions (exp, ln, sin, cos, tan, ...)
  • les nombres complexes (comme exp (I * x) .evalc () - & gt; cos (x) + I * sin (x))
  • différenciation
  • série de Taylor
  • substitution de base (comme x & gt; ln (x))
  • entiers et rationnels en précision arbitraire
  • standard (python) flotte

Ce qui est nouveau dans cette version:.

  • sympy prend désormais en charge Python 3 et PyPy
  • Cette version inclut également de nouvelles fonctionnalités majeures en combinatoire, l'intégration définitive, variables aléatoires, expressions de la matrice, les décors, la mécanique classique, mécanique quantique, algèbre commutative, traçage, et la géométrie différentielle.
  • Il y avait aussi des centaines de corrections de bugs à travers toute la base de code.

Ce qui est nouveau dans la version 0.7.1:

  • Des changements majeurs:
  • Python 2.4 ne est plus supporté. Sympy ne fonctionnera pas du tout dans Python 2.4. Si vous avez encore besoin d'utiliser sympy sous Python 2.4 pour une raison quelconque, vous aurez besoin d'utiliser sympy 0.7.0 ou plus tôt.
  • La bibliothèque de traçage Pyglet est maintenant un (en option) dépendance externe. Auparavant, nous avons expédié une version de Pyglet avec sympy, mais ce était vieux et le buggy. Le plan est, à terme, rendre le tracé dans sympy beaucoup plus modulaire, de sorte qu'il supporte de nombreux backends, mais cela n'a pas encore été fait. Pour l'instant, encore que Pyglet est directement pris en charge. Notez que Pyglet est seulement une dépendance facultative et ne est nécessaire que pour le traçage. Le reste de sympy peut encore être utilisé sans aucune dépendance (sauf pour Python).
  • isympy travaille maintenant avec la nouvelle IPython 0,11.
  • mpmath a été mis à jour à 0,17. Voir les notes de version de mpmath correspondant au http://mpmath.googlecode.com/svn/trunk/CHANGES.
  • Ajout d'un objet pour représenter Subs substitutions non évaluées. Cela permet enfin nous représentons dérivés évalués à un point, ce est à dire, diff (f (x), x) .subs (x, 0) renvoie Subs (dérivée (f (_x), _x), (_x,), (0, )). Cela signifie également que sympy peut maintenant calculer correctement la règle de la chaîne lorsque cette fonctionnalité est nécessaire, comme avec f (g (x)). Diff (x).
  • Fonctions hypergéométriques / Meijer fonctions G:
  • Ajout de catégories hyper () et MeijerG () pour représenter hypergéométriques et Meijer G-fonctions, respectivement. Ils soutiennent évaluation numérique (à l'aide de mpmath) et la différenciation symbolique (pas à l'égard des paramètres).
  • Ajout d'un algorithme de réécriture g-fonctions hypergéométriques et Meijer, en termes de fonctions spéciales nommées plus familiers. Il est accessible via la fonction hyperexpand (), ou encore par l'intermédiaire expand_func (). Cet algorithme reconnaît plusieurs fonctions élémentaires, ainsi que les fonctions complètes et incomplètes gamma, des fonctions de Bessel et des fonctions d'erreur. Il peut facilement être étendue à plusieurs catégories de fonctions spéciales.
  • Ensembles:
  • classe Ajouté FiniteSet pour imiter le comportement python ensemble tout en interagissant avec des intervalles existants et syndicats
  • FiniteSets et intervalles interagissent de sorte que, par exemple l'intervalle (0, 10) - FiniteSet (0, 5) produit (0, 5) de U (5, 10]
  • FiniteSets gérer aussi des objets non-numériques de façon qui suit est possible {1, 2, «un», «deux», {a, b}}
  • Ajouté ProductSet à manipuler des produits cartésiens d'ensembles
  • Créer aide de l'opérateur *, ce est à dire twodice = FiniteSet (1, 2, 3, 4, 5, 6) * FiniteSet (1, 2, 3, 4, 5, 6) ou carré = intervalle (0, 1) * Intervalle (0, 1)
  • opérateur de pow travaille également comme prévu: R3 = Intervalle (oo, oo) ** 3; (3, -5, 0) dans R3 == true
  • Soustraction, union, mesure tous les travaux en prenant intersections complexes en compte.
  • Ajout de la méthode as_relational à des ensembles, la production des états booléennes utilisant And, Or, Eq, Lt, Gt, etc ...
  • reduce_poly_inequalities modifié pour renvoyer syndicats de jeux plutôt que des listes de jeux
  • Iterables:
  • Ajouté générer des routines pour partitions d'entiers et partitions binaires. La routine de partitions d'entiers prend trois arguments, le nombre lui-même, l'élément maximum autorisé dans les partitions générées et le nombre maximal possible d'éléments qui seront dans la partition. Partitions binaires sont caractérisées par ne contenant que des puissances de deux.
  • Ajout de générer de routine pour le multi-ensemble des partitions. Étant donné un multi, l'algorithme mis en oeuvre va générer toutes les partitions possibles de ce multi-ensemble.
  • Ajouté générer des routines pour les permutations de cloche, dérangements, et involutions. Une permutation est une cloche dans laquelle les cycles qui le composent sont constituées de nombres entiers dans un ordre décroissant. Un dérangement est une permutation de sorte que le ième élément ne est pas à la position du i-ième. Une involution est une permutation que lorsque multiplié par lui-même donne la permutation identité.
  • Ajouté générer de routine pour les colliers sans restriction. Un collier sans restriction est une chaîne de n caractères, chacun sur une possibilité de types un-aire. Celles-ci ont été caractérisés par les paramètres n et k dans la routine.
  • Ajouté générer de routine pour les forêts orientées. Ce est une implémentation de l'algorithme S dans TAOCP Vol 4A.
  • bases de Spin xyz:
  • Le représentez, réécrire et la logique InnerProduct a été amélioré pour travailler entre deux bases tout de spin. Ceci a été réalisé en utilisant la matrice de Wigner-D, mis en oeuvre dans la classe WignerD, en définissant les changements entre les différentes bases. Représentant un état, ce est à dire représentent (JzKet (1,0), base = Jx), peut être utilisé pour donner la représentation vectorielle de tout obtenir dans l'une des bases x / y / z pour les valeurs numériques de j et m dans le spin état propre. De même, les Etats réécriture dans des bases différentes, à savoir JzKet (1,0) .rewrite («Jx»), écriront les Etats comme une combinaison linéaire des éléments de la base donnée. Parce que ce se appuie sur la fonction de représenter, cela ne fonctionne que pour J et M valeurs numériques. Le produit intérieur de deux états propres dans des bases différentes peut être évaluée, soit InnerProduct (JzKet (1,0), JxKet (1,1)). Lorsque deux bases différentes sont utilisées, un état est réécrit dans l'autre base, de sorte que cela nécessite des valeurs numériques de j et m, mais innerproducts des Etats dans la même base peut encore être fait symboliquement.
  • Les méthodes Rotation.D et Rotation.d, représentant la fonction de Wigner-D et la fonction petite-d Wigner, retourner une instance de la classe WignerD, qui peut être évaluée avec la méthode obole () pour donner la matrice correspondante élément de la matrice de Wigner-D.
  • Autres changements:
  • Nous utilisons maintenant MathJax dans nos docs. MathJax rend LaTeX mathématiques entierly dans le navigateur en utilisant Javascript. Cela signifie que le calcul est beaucoup plus lisible que le calcul png précédente, qui utilise des images. MathJax est uniquement prise en charge sur les navigateurs modernes, afin LaTeX mathématiques dans les docs peut ne pas fonctionner sur les navigateurs plus anciens.
  • nroots () vous permet désormais de définir la précision des calculs
  • Ajout du support pour les types de gmpy et mpmath est-à-sympify ()
  • Correction de quelques bugs avec lambdify ()
  • Correction d'un bug avec as_independent et non-commutatives symboles.
  • Correction d'un bug avec virés (question 2516)
  • Beaucoup de corrections relatives au portage sympy à Python 3. Merci à nos étudiants GSoC Vladimir Peric, cette tâche est presque terminée.
  • Certaines personnes ont été rétroactivement ajouté au fichier AUTEURS.
  • Ajout d'un solveur pour un cas particulier de l'équation de Riccati dans le module ODE.
  • dérivés itérés sont assez imprimées de façon concise.
  • Correction d'un bug avec l'intégration des fonctions multiples DiracDeltas.
  • Ajout du support pour Matrix.norm () qui fonctionne pour matrices (vecteurs pas juste).
  • Amélioration de l'algorithme de bases Groebner.
  • Plot.saveimage prend désormais en charge une StringIO outfile
  • Expr.as_ordered_terms prend désormais en charge ordres lex non.
  • diff canonise maintenant l'ordre des symboles de différenciation. Il en est ainsi on peut simplifier des expressions telles que f (x, y) .diff (x, y) - f (x, y) .diff (y, x). Si vous voulez créer un objet dérivé sans trier les args, vous devez créer explicitement avec un dérivé, de sorte que vous obtiendrez dérivée (f (x, y), x, y)! = Dérivée (f (x, y), y, x). Notez que l'interne, les dérivés qui peuvent être calculées sont toujours calculés dans l'ordre qu'ils sont donnés dans.
  • Ajout de fonctions is_sequence () et itérable () pour déterminer si quelque chose est un itérable itérable ou normale, respectivement.
  • commandé
  • activé une option dans Sphinx qui ajoute un lien de la source à côté de chaque fonction, qui renvoie à une copie du code source pour cette fonction.

Quoi de neuf dans la version 0.7.0:

  • Ce est une version majeure qui ajoute beaucoup de nouvelles fonctionnalités .
  • Le plus grand changement est les nouveaux polygones, qui sont beaucoup plus puissant et beaucoup plus rapide. Cela affecte de nombreuses régions du sympy, y compris les solveurs et simplification.
  • Un autre grand changement est le nouveau module quantique, qui a été ajouté à la suite de deux Google Summer of Code projets.
  • Mis à part ces changements majeurs, il ya beaucoup de changements dans l'ensemble des sympy.
  • Cette version a aussi quelques pauses plupart mineurs de compatibilité ascendante.

Ce qui est nouveau dans la version 0.6.3:

  • porté sur python2.6 (tous les tests passent) et Jython (tous les tests passent l'exception de ceux en fonction de la & quot; ast & quot; module).
  • True division a été fixé (tous les tests passent avec le & quot; -Qnew & quot; l'option Python)
  • .
  • buildbot.sympy.org a été créé; sympy est maintenant régulièrement testé sur Python 2.4, 2.5 et 2.6 sur les deux architectures i386 et amd64.
  • py.bench:. Évaluation comparative fondée de py.test-
  • bin / test: un cadre simple de test py.test-like, sans dépendances externes et avec sortie agréablement coloré
  • .
  • La plupart des limites fonctionnent maintenant.
  • factorisation sur Z [x] a été grandement améliorée.
  • fonction par morceaux a été ajouté. nsimplify () a été mis en œuvre.
  • Symboles et la syntaxe var ont été unifiés.
  • l'impression de code C.

Exigences :

  • Python

Logiciel similaire

Fractal Fr0st
Fractal Fr0st

3 Jun 15

Gplib++
Gplib++

12 May 15

AnallogicA
AnallogicA

19 Feb 15

DragMath
DragMath

2 Jun 15

Commentaires à Sympy

Commentaires non trouvées
Ajouter un commentaire
Tourner sur les images!