## Studiamo il calcolo simbolico


```python
#importo la libreria per il calcolo simbolico
from sympy import Symbol
from sympy import symbols
from sympy import factor
from sympy import solve
from sympy.plotting import plot
```


```python
x = Symbol('x')
```


```python
x+x+3
```




    2*x + 3




```python
#il nome della variabile
x.name
```




    'x'




```python
#definizione di più variabile simboliche
y,z = symbols('y,z')
```


```python
#un esempio
p = x*(x+x)
p
```




    2*x**2




```python
f = (x+2)*(x+3)
f
```




    (x + 2)*(x + 3)




```python
#espande se scritto esplicitamente
print(f.expand())
```

    x**2 + 5*x + 6



```python
#esempio di fattorizzazione
factor(x**2-y**2)
```




    (x - y)*(x + y)




```python
#fattorizzazione
factor(x**3+3*x**2*y+3*x*y**2+y**3)
```




    (x + y)**3




```python
#scriviamola un po' meglio
from sympy import pprint
expr = factor(x**3+3*x**2*y+3*x*y**2+y**3)
pprint(expr)
```

           3
    (x + y) 



```python
#esempio scomposizione
expre = (x+2)**2-1
```


```python
factor(expre)
```




    (x + 1)*(x + 3)




```python
expre.expand()
```




    x**2 + 4*x + 3




```python
expre2 = x**9 -3*x**6+3*x**3-1
```


```python
factor(expre2)
```




    (x - 1)**3*(x**2 + x + 1)**3




```python
#calcolo simbolico con frazioni - non funziona
#from fractions import Fraction
#factor(Fraction(factor(-4*x**2-6*x+7),factor(x**3-2*x**2-x+2)))
```

## Risolviamo le equazioni


```python
x=Symbol('x')
expr = x**2 + x + 1
solve(expr, dict=True)
```




    [{x: -1/2 - sqrt(3)*I/2}, {x: -1/2 + sqrt(3)*I/2}]




```python
x=Symbol('x')
expr = x**2 - 5*x + 4
solve(expr, dict=True)
```




    [{x: 1}, {x: 4}]




```python
x=Symbol('x')
expr = x**3 - 5*x + 4
solve(expr, dict=True)
```




    [{x: 1}, {x: -1/2 + sqrt(17)/2}, {x: -sqrt(17)/2 - 1/2}]




```python
#sistema di equazioni
x = Symbol('x')
y = Symbol('y')
expr1 = 2*x + 3*y - 6
expr2 = 3*x + 2*y - 12
solve((expr1, expr2), dict=True)
```




    [{x: 24/5, y: -6/5}]




```python
#disegnamo funzioni
x = Symbol('x')
plot(2*x+3)
```




    <sympy.plotting.plot.Plot at 0x7f616b423588>




```python
#disegnamo funzioni
x = Symbol('x')
plot(2*x**2+3)
```


```python

```

b7727918e12187d76cda382cd856f40b903475a3
ipynb
Jupyter Notebook
develop/20170401-SG-CalcoloSimbolicoInPython.ipynb
micio1970/Math4Kids
13f8e672fc2f0db039a2a7d0cefc92a2cd7fa1ef
MIT
develop/20170401-SG-CalcoloSimbolicoInPython.ipynb
micio1970/Math4Kids
13f8e672fc2f0db039a2a7d0cefc92a2cd7fa1ef
MIT
develop/20170401-SG-CalcoloSimbolicoInPython.ipynb
micio1970/Math4Kids
13f8e672fc2f0db039a2a7d0cefc92a2cd7fa1ef
MIT
Qwen/Qwen-72B
1. YES
2. YES