기본 콘텐츠로 건너뛰기

1월, 2019의 게시물 표시

벡터와 행렬에 관련된 그림들

삼각함수의 적분

삼각함수 경우 다음과 같이 치환을 사용하여 적분할 수 있습니다. $\int cos(x)sin^5(x)dx$ sin(x)=u,  cos(x)dx=du로 치환하면 $\int u^5 du = \frac{1}{6}sin^6(x)+c$ 위의 경우는 치환한 부분의 미분이 존재하는 경우입니다. 그러나 다음과 같이 그렇지 않은 경우는 삼각함수 자체를 변형하여 실행할 수 있습니다. $\int sin^5dx=\int sin(x)sin^4(x)dx=\int sin(x)(1-cos^2(x))^2\\ \because sin^2(x)+cos^2(x)=1 \rightarrow sin^2(x)=1-cos^2(x) \\ cos(x)=u, -sin(x)dx=du \\-\int (1-u^2)^2 du= -\int 1-2u^2+u^4 du=-u+\frac{2}{3}u^3-\frac{1}{5}u^5+c=-cos(x)+\frac{2}{3}cos^3(x)-\frac{1}{5}cos^5(x)+c$ >>> from sympy import * >>> x=symbols("x") >>> integrate(sin(x)**5) -cos(x)**5/5 + 2*cos(x)**3/3 - cos(x) 예) 다음 함수의 적분 $\int sin^6(x)cos^3(x) dx$ 위 함수에 cos(x)=u → -sin(x)dx=du 로 치환하면 다음과 같이 변형됩니다. $\int sin^5(x)cos^3(x)sin(x)dx=-\int sin^5(x)udu$ 위의 식에서 sin^5(x)에 대한 처리가 문제가 됩니다. 반면에  sin(x)=u,  cos(x)dx=du로 치환하면 보다 적분이 용이한 식으로 전환됩니다. $\int sin^6(x)cos^2(x)cos(x)dx=\int sin^6(x)(1-sin^2(x))cos(x)dx\\=\int u^6(1-u^2)du=\frac{1}{7}u^7-\frac{1}{9}u^9+c\\=\fra...

부분분수_sympy

내용 var와 symbols 분수 표현 부분분수 분해 행렬의 적용 부분분수 var와 symbols symbols(기호(문자), **args) 지정된 기호 또는 문자를 sympy객체내에서 변수로 지정. 별도의 객체화가 필요 var(기호(문자), **args) 지정된 기호 또는 문자를 sympy객체내에서 변수로 지정. sympy 내에서 var()함수의 결과가 전역변수가 되므로 별도의 객체화가 불필요 두 함수 모두 real=True와 같은 변수에 대한 조건을 부여할 수 있음 var('x') x 위의 경우 x는 기호로 적용되지만 symbols()를 사용할 경우 다음과 같이 객체로 저장해야 합니다. x=symbols("x"); x x var('a,ab,abc') (a, ab, abc) abc abc type(abc) sympy.core.symbol.Symbol real=True인자를 사용하여 기호의 범위를 한정할 수 있습니다. var('x,y', real=True) (x, y) x.is_real and y.is_real True 분수 표현 다음과 같은 분수를 나타내기 위해 다음 함수를 사용합니다. Rational(numer, denom) or Rational(유리수): 인수가 number일 경우 적용 분자, 분모가 함수일 경우는 f/g로 나타냄 numer(분수식): 분수의 분자항을 반환 denom(분수식): 분수의 분모항을 반환 x=symbols('x') f=5*x**2+10*x+3 g=2*x+2 eq=f/g; eq $\quad\color{navy}{\scriptstyle \frac{5 x^{2} + 10 x + 3}{2 x + 2}}$ numer(eq) $\quad\color{navy}{\scriptstyle...

부분적분

미분의 곱 법칙과 연관 (fg)'=f'g+fg' $\int (fg)'dx=\int f'g dx+\int fg'dx \rightarrow fg=\int  f'g dx+\int fg'dx $ 위 식을 다음과 같이 다시 정렬할 수 있습니다. $\int fg' dx=fg-\int f'g dx $  Eq(1) 부분적분 위 식에서 f(x), g(x)를 각각 u, v로 치환하면 다음과 같이 정리됩니다. f(x)=u, g(x)=v → f'(x)dx=du, g'(x)dx=dv Eq(1)에 치환을 적용하면 $\int u dv=uv - \int v du$ 위 식을 지정한 구간 [a, b]의 정적분은 다음과 같이 계산됩니다. $\int^b_a u dv=uv|^b_a - \int^b_a v du$ 위 부분 적분의 절차를 프로그램 함수로 작성하면 다음과 같습니다. def partIntegralS(u, dv, Symbolvar, loup=0):     du=diff(u, Symbolvar)     v=integrate(dv, Symbolvar)     uv=u*v     vdu=integrate(v*du, Symbolvar)     if loup==0:         re=uv-vdu         return(re)     else:         re=uv-vdu         re1=re.subs(Symbolvar, loup[1])-re.subs(Symbolvar, loup[0])         return(re1) 예) 다음을 적분? 1) $\int xe^{6x}dx=x\frac{1}{6}e^{6x}-\int\frac{1}{...

Newton's Method

Newton's Method 모든 방정식이 정확한 해를 가지지는 않습니다. 이러한 경우 근사해(approximate solution)을 계산할 필요가 있습니다. 이러한 근사해를 계산하는 다양한 방법들 중에 가장 많이 사용되는 방법이 뉴턴의 방법입니다.  위 그림에서 파란선의 경우 x_0에서의 접선, 초록선의 경우는 x_1에서의 접선을 나타냅니다. 이 접선이 x축과 만나는 점을 기준으로 함수f(x)와의 점에서의 접선의 기울기는 f'(x_1)이 됩니다. 함수 f(x)의 해를  x_n이라고 하면 다음과 같이 초기 임의의 점 x_0에서 시작하여 x_n까지의 근사시킬 수 있습니다.  tangent line at x_0 : y=f(x_0)+f'(x_0)(x-x_0) x_1: 0=f(x_0)+f'(x_1)(x_1-x_0) → x_1=x_0-\frac{f(x_0)}{f'(x_1)} tangent line at x_1: y=f(x_1)+f'(x1)(x-x_1) 위 식을 적용하여 x_2는 다음과 같이 계산됩니다.  0=f(x_1)+f'(x1)(x_2-x_1)→ x_2=x_1-\frac{f(x_1)}{f'(x_2)} 위 과정은 x_n을 계산할 수 있을 때까지 반복할 수 있습니다.  위 과정을 다음과 같이 일반화 할 수 있습니다.  x_n이 f(x)=0의 근사해이고 f'(x_n) ≠ 0 이 아니면 다음식이 성립됩ㄴ다.  $x_{n+1}=x_n -\frac{f(x_n)}{f'(x_n)} 근사해를 계산하기 위해 위의 식을 적용할 경우 위 과정의 반복정도를 결정해야 합니다. 이 식은 근해를 계산하는 것으로서 반복수에 대한 일반적인 기준을 설정할 수는 없지만 각 반복의 결과의 차이가 매우 작을 경우까지 반복 계산을 합니다.  예) 뉴턴방법을 적용하여 구간 [0, 2] 에서  f(x)=cos(x)-x의 근사해를 계산합니다....

sympy 분수 표시와 자료형

내용 계산 결과를 분수로 표시하는 방법 sympy객체의 자료형 확인 계산 결과를 분수로 표시하는 방법 Rational('분수'), Rational(분자, 분모), Rational(유리수) import numpy as np from sympy import * y=x**(2/3)*(2*x-x**2);y $\quad\color{navy}{\scriptstyle x^{0.666666666666667} \left(- x^{2} + 2 x\right)}$ expand(diff(y, x)) $\quad\color{navy}{\scriptstyle 3.33333333333333 x^{0.666666666666667} - 2.66666666666667 x^{1.66666666666667}}$ 위 결과들을 분수로 나타냅니다. y=x**Rational('2/3')*(2*x-x**2);y $\quad\color{navy}{\scriptstyle x^{\frac{2}{3}} \left(- x^{2} + 2 x\right)}$ expand(diff(y, x)) $\quad\color{navy}{\scriptstyle - \frac{8 x^{\frac{5}{3}}}{3} + \frac{10 x^{\frac{2}{3}}}{3}}$ sympy객체의 자료형 확인 x=[20**(1/3)*3**(2/3)/3, -20**(1/3)*3**(2/3)/6 - 20**(1/3)*3**(1/6)*I/2, -20**(1/3)*3**(2/3)/6 + 20**(1/3)*3**(1/6)*I/2] x [1.8820720577620567, -0.941036028881028 - 1.62992221377479*I, -0.941036028881028 + 1.62992221377479*I] [type(i) for i in x] [float, sympy.core.add.Add, sympy.core.add.Add] sympy에서 정수와...

latex equation, HTML symbol 정리

구글 블로그에서 latex수식을 적용하기 위해서  1) 블로그에 메인창에서 테마로 이동  2) 우측 상단의 $vdots$클릭하여 HTML 편집기로 이동 3) <head> ~</head> 사이에 다음을 입력  <script src='http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML' type='text/javascript'/> 1. 조건에 따른 여러 함수 표현 \[f(x) = \left\{   \begin{array}{lr}     x^2 & : x < 0\\     x^3 & : x \ge 0   \end{array} \right. \[f(x) = \left\{   \begin{array}{lr}     x^2 & : x < 0\\     x^3 & : x \ge 0   \end{array} \right. \] 또는 \[  u(x) =   \begin {cases}    \exp{x} & \text{if } x \geq 0 \\    1       & \text{if } x < 0   \ end {cases} \ ] \[  u(x) =   \begin{cases}    \exp{x} & \text{if } x \geq 0 \\    1       & \text{if } x < 0   \end{cases} \] 2. Arc(호) 문자 \overset{{\frown}}{{ABC}} =$...