SymPy – un esempio, anzi la soluzione

sympyRecentemente mi sono occupato di SymPy, con 4 post noiosi tipo “Uh! vediamo quello che fa!“. Qui, qui, qui e qui.
È arrivato il momento di confessare il perché del mio interesse istantaneo appena John D. Cook me ne ha parlato (vedi il primo link).
Quello che m’interssava era di velocizzare un programmino (non a tutti piace il termine ‘script’ ;-)) per la soluzione di equazioni di terzo grado. In realtà sono andato un po’ oltre, parecchio oltre: lo script il programmino di oggi è molto più generale.

Ah, sì! è da finire, mettergli una veste grafica sexy e rendere l’espressione della riga 7 una variabile da leggere in un box. Ma quella è una cosa ordinaria, vero? Anche se fareste bene, come sempre, a tener conto della legge di Hofstadter.

Allora ecco lo script, tutto qui:

#!/usr/bin/python
# -*- coding: utf-8 -*-

from sympy import *

#dati
my_expr = 'x**3 -3 * x**2 + 42' # espressione (senza = 0)
my_sym = 'x'					# risolverla per x

res = solve(my_expr, my_sym)
numres = len(res)
print numres, 'soluzioni\n'

for s in res:
	vs = s.evalf()  # valore di s
	tv = vs.is_real # s è reale e non complesso
	strs = str(s)	# espressione, non troppo lunga
	if len(strs) > 60:
		p = strs.find(' ', 60)
		if p > 0:
			strs = '{0}\n{1}'.format(strs[:p].rstrip(),
			                         strs[p+1:].lstrip())
	print strs, '\n -> ', vs, tv, '\n'

s0

Sembra forse troppo semplice per farci un post. Ma c’è dietro tutto Python e Sympy, e poi è sabato 😀

Posta un commento o usa questo indirizzo per il trackback.

Commenti

  • vinnie  Il 24 febbraio 2013 alle 16:44

    Una domanda, ho scelto l’ultimo post su python perché è questo l’argomento ma ho una domanda non su sympy.
    Stavo provando a studiare gli speciali di fullcircle su python e sono arrivato alla parte 5 che parla delle gui.
    Dice che bisogna scaricare wxpython e boa constructor, allora wxpython ok ma boa constructor mi sembra un progetto abbandonato, che lo imparo a fare? m dareste qualche consiglio?

  • vinnie  Il 24 febbraio 2013 alle 20:17

    Si ma anche io uso geany, ma credo che boa constructol li lo faccia usare come toolkit per le gui.

    • juhan  Il 24 febbraio 2013 alle 20:21

      Mi sa che ne riparlerò, prossimamente.

  • Moreno Colaiacovo (@emmecola)  Il 11 marzo 2013 alle 17:11

    Ho una domanda che non c’entra nulla con il post, ma ha che fare con i blog e la programmazione in generale. Come si fa a inserire un codice in Perl in un post di un blog, in modo da evidenziarne la sintassi come hai fatto tu con Python? Ho provato con alcuni sistemi che ho trovato in rete, ma non funzionano. 😦 http://let-data-speak.blogspot.it/2013/03/in-attesa-della-fumata-bianca.html

    • juhan  Il 11 marzo 2013 alle 17:39

      se sei su WordPress è facile, su Blogger/blogspot anche. Siccome mi sembra che sei su WordPress ti racconto tutto in un post, spero domani in mattinata. Puoi contattarmi a n1n0.aegis AT gmail PUNTO com

  • Moreno Colaiacovo (@emmecola)  Il 11 marzo 2013 alle 21:38

    Ti ho scritto una mail. Grazie!

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.

%d blogger hanno fatto clic su Mi Piace per questo: