# SymPy試してみる

[SymPy](https://docs.sympy.org/latest/index.html)ライブラリを試してみる。  

まずは[tutorial](https://docs.sympy.org/latest/tutorial/intro.html)を参考にして、、、

### 微分積分

微分積分してみる。



```python
import sympy as sp

x=sp.symbols('x')
y1=sp.sin(x)
y2=sp.Integral(y1,x)
y3=sp.Integral(y1,(x, 0, 2*sp.pi))

```

不定積分


```python
eq1=sp.Eq(y2,y2.doit())
eq1
```




$\displaystyle \int \sin{\left(x \right)}\, dx = - \cos{\left(x \right)}$



定積分


```python
eq2=sp.Eq(y3,y3.doit())
eq2
```




$\displaystyle \int\limits_{0}^{2 \pi} \sin{\left(x \right)}\, dx = 0$



プロット


```python
sp.plot(y1,y2.doit(),(x,0,2*sp.pi),legend = True)
```

ハイパボリック


```python
b=sp.sinh(x)
c=sp.Integral(b,x)
sp.Eq(c,c.doit())
```




$\displaystyle \int \sinh{\left(x \right)}\, dx = \cosh{\left(x \right)}$



微分

$(e^{-x}\sinh{(x^2+1)})'=$　の形で出力する方法がまだわからいない


```python
a=sp.exp(-x)*sp.sinh(x**2+1)
a

```




$\displaystyle e^{- x} \sinh{\left(x^{2} + 1 \right)}$




```python
sp.diff(a,x)

```




$\displaystyle 2 x e^{- x} \cosh{\left(x^{2} + 1 \right)} - e^{- x} \sinh{\left(x^{2} + 1 \right)}$



使った機能をとりあえず以下にメモ(まだ中身はよく理解してない)

・[symbol.symbols()メソッド](https://docs.sympy.org/latest/modules/core.html#symbols)  
・[Integralクラス ](https://docs.sympy.org/latest/modules/integrals/integrals.html#sympy.integrals.integrals.Integral)  
・[Integral.doit()メソッド](https://docs.sympy.org/latest/modules/core.html#sympy.core.basic.Basic.doit)  
・[diff()メソッド ](https://docs.sympy.org/latest/modules/core.html#sympy.core.function.diff)    
・[Eq/Equality()クラス](https://docs.sympy.org/latest/modules/core.html#sympy.core.relational.Equality)


###　微分方程式

微分方程式解いてみる


```python
f = sp.symbols('f', cls=sp.Function)
diffeq = sp.Eq(f(x).diff(x, x) - 2*f(x).diff(x) + f(x), sp.sin(x))
diffeq
```




$\displaystyle f{\left(x \right)} - 2 \frac{d}{d x} f{\left(x \right)} + \frac{d^{2}}{d x^{2}} f{\left(x \right)} = \sin{\left(x \right)}$




```python
sp.dsolve(diffeq,f(x))
```




$\displaystyle f{\left(x \right)} = \left(C_{1} + C_{2} x\right) e^{x} + \frac{\cos{\left(x \right)}}{2}$



使った機能メモ  

[Functionクラス](https://docs.sympy.org/latest/modules/core.html?highlight=function#sympy.core.function.Function)  
[dsolve()メソッド](https://docs.sympy.org/latest/modules/solvers/ode.html?highlight=dsolve#sympy.solvers.ode.dsolve)

### 因数分解

多項式の因数分解



```python
poly=x**3 - x**2 + x - 1
sp.Eq(poly,sp.factor(poly))
```




$\displaystyle x^{3} - x^{2} + x - 1 = \left(x - 1\right) \left(x^{2} + 1\right)$



使った機能メモ  

[Factorメソッド](https://docs.sympy.org/latest/modules/polys/reference.html?highlight=factor#sympy.polys.polytools.factor)

### ここまでを詳しく調べてみる。


```python
type(x)
```


```python
dir(x)
```


```python
type(y1)
```




    sin




```python
dir(y1)
```


```python
type(eq1)
```


```python
dir(eq1)
```

dbbf2a9cd2987c32c86c6f2ccedc36d59c6da7ca
ipynb
Jupyter Notebook
sympy_traning.ipynb
arockyu/python_beginner
83c5657a38eb6e33761d7449e168d17fa44c506a
MIT
sympy_traning.ipynb
arockyu/python_beginner
83c5657a38eb6e33761d7449e168d17fa44c506a
MIT
sympy_traning.ipynb
arockyu/python_beginner
83c5657a38eb6e33761d7449e168d17fa44c506a
MIT
Qwen/Qwen-72B
1. YES
2. YES