### 적분
- 부정적분, 정적분

- 부정적분
    - 미분과 반대되는 개념, 반-미분
    - 도함수 미분되기 전의 원래 함수 찾는 과정
    

- 편미분의 부정적분
    - 편미분을 한 도함수에서 원래의 함수를 찾을 수 있다.
    - C(y) 가 y의 함수일 수 있다. 상수일 수도 있다.

- 다차 도함수와 다중적분
    - 변수 순서대로 적분


```python
import sympy
x = sympy.symbols('x')
f = x * sympy.exp(x) + sympy.exp(x)
f
```




$\displaystyle x e^{x} + e^{x}$




```python
sympy.integrate(f)
```




$\displaystyle x e^{x}$




```python
x, y = sympy.symbols('x y')
f = 2 * x + y
f
```




$\displaystyle 2 x + y$




```python
sympy.integrate(f, x)
```




$\displaystyle x^{2} + x y$




```python
x = sympy.symbols('x')
f = 3 * x ** 2
sympy.integrate(f)
```




$\displaystyle x^{3}$




```python
x = sympy.symbols('x')
f = 3 * x ** 2 - 6 * x + 1
sympy.integrate(f)
```




$\displaystyle x^{3} - 3 x^{2} + x$




```python
x = sympy.symbols('x')
f = 2 + 6 * x + 4 * sympy.exp(x) + 5 / x
sympy.integrate(f)
```




$\displaystyle 3 x^{2} + 2 x + 4 e^{x} + 5 \log{\left(x \right)}$




```python
x = sympy.symbols('x')
f = 2 * x / (x ** 2 - 1)
sympy.integrate(f)
```




$\displaystyle \log{\left(x^{2} - 1 \right)}$




```python
x, y = sympy.symbols('x y')
f = 1 + x * y
sympy.integrate(f, x)
```




$\displaystyle \frac{x^{2} y}{2} + x$




```python
x, y = sympy.symbols('x y')
f = x * y * sympy.exp(x ** 2 + y ** 2)
sympy.simplify(sympy.integrate(f, x))
```




$\displaystyle \frac{y e^{x^{2} + y^{2}}}{2}$



- 정적분
    - 독립변수 x가 어떤 구간 [a, b] 사이일 때 그 구간에서 함수 f(x)의 값과 수평선(x 축)이 이루는 면적을 구하는 방법


```python
from matplotlib.patches import Polygon


def f(x):
    return x ** 3 - 3 * x ** 2 + x + 6


a, b = 0, 2
x = np.linspace(a - 0.5, b + 0.5, 50)
y = f(x)

ax = plt.subplot(111)
plt.title("정적분의 예")
plt.plot(x, y, 'r', linewidth=2)
plt.ylim(bottom=0)
ix = np.linspace(a, b)
iy = f(ix)
verts = [(a, 0)] + list(zip(ix, iy)) + [(b, 0)]
poly = Polygon(verts, facecolor='0.9', edgecolor='0.5')
ax.add_patch(poly)
plt.text(0.5 * (a + b), 0.2 * (f(a) + f(b)), r"$\int_a^b f(x)dx$",
         horizontalalignment='center', fontsize=20)
plt.figtext(0.9, 0.05, '$x$')
plt.figtext(0.1, 0.9, '$y$')
ax.spines['right'].set_visible(False)
ax.spines['top'].set_visible(False)
ax.xaxis.set_ticks_position('bottom')
ax.set_xticks((a, b))
ax.set_xticklabels(('$a$', '$b$'))
ax.set_yticks([])
ax.set_xlim(-2, 4)
ax.set_ylim(0, 8)
plt.show()
```


```python
x, y = sympy.symbols('x y')
f = x ** 3 - 3 * x ** 2 + x + 6
f
```




$\displaystyle x^{3} - 3 x^{2} + x + 6$




```python
F = sympy.integrate(f)
F
```




$\displaystyle \frac{x^{4}}{4} - x^{3} + \frac{x^{2}}{2} + 6 x$




```python
(F.subs(x, 2) - F.subs(x, 0)).evalf()
```




$\displaystyle 10.0$




```python
def f(x):
    return x ** 3 - 3 * x ** 2 + x + 6


sp.integrate.quad(f, 0, 2)
```




    (10.0, 1.1102230246251565e-13)




```python
sympy.symbols('x')
f = 3 * x ** 2 - 6 * x + 1
F = sympy.integrate(f)
(F.subs(x, 1) - F.subs(x, 0))
```




$\displaystyle -1$




```python
def f(x):
    return 3 * x ** 2 - 6 * x + 1


sp.integrate.quad(f, 0, 1)
```




    (-1.0, 1.3085085171449517e-14)




```python
sympy.symbols('x')
f = 2 + 6 * x + 4 * sympy.exp(x) + (5 / x)
F = sympy.integrate(f)
(F.subs(x, 10) - F.subs(x, 1))
```




$\displaystyle - 4 e + 5 \log{\left(10 \right)} + 315 + 4 e^{10}$




```python
def f(x):
    return 2 + 6 * x + 4 * sympy.exp(x) + (5 / x)


sp.integrate.quad(f, 1, 10)
```




    (88421.50297737827, 1.5276890734473408e-06)




```python
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
_x = np.arange(12) / 2 + 2
_y = np.arange(12) / 2
X, Y = np.meshgrid(_x, _y)
x, y = X.ravel(), Y.ravel()
z = x * x - 10 * x + y + 50
z0 = np.zeros_like(z)
ax.bar3d(x, y, z0, 0.48, 0.48, z)
ax.set_xlim(0, 10)
ax.set_ylim(-2, 10)
ax.set_zlim(0, 50)
ax.set_xlabel("x")
ax.set_ylabel("y")
plt.title("f(x, y)")
plt.show()
```


```python
def f(x, y):
    return np.exp(-x * y) / y**2

sp.integrate.dblquad(f, 1, np.inf, lambda x: 0, lambda x: np.inf)
```




    (0.4999999999999961, 1.068453874338024e-08)




```python
def f(x, y):
    return 1 + x * y

sp.integrate.dblquad(f, -1, 1, lambda x: -1, lambda x: 1)
```




    (4.0, 4.440892098500626e-14)



- 다차원 함수의 단일 정적분
    - 2차원 함수이지만 단일 정적분을 하는 경우

d213c1fbbeaae786044f674ae9caba367fa7dab7
ipynb
Jupyter Notebook
4.3 integral_hyojunahn.ipynb
loveactualry/TIL
0b111a1ec01cbbe44245611cb2d26489c2701f39
MIT
4.3 integral_hyojunahn.ipynb
loveactualry/TIL
0b111a1ec01cbbe44245611cb2d26489c2701f39
MIT
4.3 integral_hyojunahn.ipynb
loveactualry/TIL
0b111a1ec01cbbe44245611cb2d26489c2701f39
MIT
Qwen/Qwen-72B
1. YES
2. YES