기본 콘텐츠로 건너뛰기

12월, 2018의 게시물 표시

[matplotlib] 등고선(Contour)

삼각함수 미분공식

1. f(x)=xnf(x)=nxn1orddx(xn)=nxn1 위 식을 증명하기 위해서는  n이 양수라고 가정합니다. 또한 이항정리를 사용합니다.  <이항정리>  (a+b)n=k=0n(kn)ankbk=an+(1n)an1b+(2n)an2b2++(n1n)abn1+(nn)abn=an+nan1b+n(n1)2!an2b2+n(n1)(n2)3!an3b3++nabn1+bn 위 식의 전개에서  (nk)=n!k!(nk)!,n!=n(n1)21 f(x)=xn 이라고 하면  f(x)=limh0(x+h)nxnh=limh0(xn+nxn1h+n(n1)2!xn2h2+n(n1)(n2)3!xn3h3++nxhn1+hn)xnh=limh0nxn1+n(n1)2!xn2h+n(n1)(n2)3!xn3h2++nxhn2+hn1=nxn1 2. limθ0sinθθ=1    위 그림은 원위의 두...

미분의 개념

내용 단순한 형태의 미분 음의 거듭제곱 형태의 미분 분수형태의 거듭제곱의 경우 상수를 포함한 식의 미분 단순한 형태의 미분 예 1) 두 변수 y와 x의 관계를 나타낸 함수 y=x2에 따르면 x가 증가하면 y 역시 증가합니다. 이 관계에서 두 변수 사이의 비율을 계산할 수 있습니다. 이 예제는 미분계수인 dydx의 값을 계산하는 것으로 x의 증가에 따라 식 1과 같이 표현할 수 있습니다. (1)y+dy=(x+dx)2=x2+2xdx+(dx)2 dx는 변수 x의 작은 양이므로 위 식에서 (dx)2는 작은 양들 사이의 곱이므로 다른 항에 비해 매우 작습니다. 즉, 이 항은 무시 가능하기 때문에 식 1은 식 2와 같이 정리됩니다. (2)y+dy=x2+2xdxdy=2xdx 위 식2는 미세한 구간에서 x에 대한 y의 변화율을 나타내는 것으로 미분이라고 정의합니다. 다시말하면, 일반적인 미분의 정의인 식 3과 같이 나타낼 수 있습니다. (3)dydx=2x 파이썬 sympy 패키지의 diff() 함수를 적용하여 다음과 같이 코드화 할 수 있습니다. 이 함수는 sympy객체.diff() 와 같이 메소드 형태로 적용할 수 있습니다. x=symbols("x", real=True) y=x**2 diff(y) 2x y.diff() 2x dydx는 x에 대한 y를 미분하는 결과입니다. 미분한다는 것은 미분 계수를 발견하는 것을 의미합니다. x에 관한 다른 함수에 대해 생각해 봅니다. u=7x2+3 위 식의 x에 대한 u의 미분은 다음과 같이 나타...

무한대와 극한

1. 무한 극한  x=a 점으로 충분히 근접할 경우 극한값이 양(positive)의 무한대로 증가하면 또는 음(negative)의 무한대로 확장되는 것을 다음과 같이 나타냅니다. limxaf(x)=limxaf(x)= 이러한 경우 그 함수에 의해 x=a는 정의되지 않습니다. 1. f(x)=1x함수의 그래프를 그려보면 다음과 같습니다. 이 함수는 x가 0에 접근할 수록 값이 양의 무한대와 음의 무한대로 확장됩니다. 즉. limx0+1x=+,limx01x= 위의 결과와 같이 0에 대해 오른쪽 극한과 왼쪽 극한이 일치하지 않습니다. 즉, 그 점에서는 불연속이므로 x=0에서의 극한 값은 존재하지 않습니다. limx0+1xdoesn't exist 2. f(x)=1x2? 위 함수는 극한은 다음과 같이 나타낼 수 있습니다. limx0+1x=,limx01x= 위 결과와 같이 x=0에 대해 왼쪽극한과 오른쪽 극한은 같습니다. 그러므로 0에 대한 극한은 입니다.  limx0+1x= 위 두 문제로 부터 다음을 정의할 수 있습니다. x=a에서 다음이 성립하면 함수 f(x)는 x=a를 기준으로 대칭입니다. limxaf(x)=±,limxa+f(x)=±,limxaf(x)=± 3. 함수 $f(x...

극한의 특성과 계산

극한의 특성 limxaf(x),limxag(x) 그리고 상수(constant) c사이에 다음 관계들이 성립합니다. import numpy as np import pandas as pd from sympy import * import matplotlib.pyplot as plt x=symbols("x") f=x**2+3*x g=x**3+4*x+5 c=3 a=2 f x2+3x g x3+4x+5 1) limxacf(x)=climxaf(x) limit(c*f, x, a) 30 c*limit(f, x, a) 30 2) limxa[f(x)±g(x)]=limxaf(x)±limxag(x) limit(f+g, x, a) 31 limit(f, x, a)+limit(g, x, a) 31 3) limxa[f(x)g(x)]=limxaf(x)limxag(x) limit(f*g, x, a) 210 limit(f, x, a)*limit(g, x, a) 210 4) limxaf(x)g(x)=limxaf(x)limxag(x),limxag(x)0 limit(f/g, x, a) 121 limit(f, x, a)/limit(g, x, a) 121 5) $\lim...

극한(Limit)의 개념

내용 접선과 외선 극한(limit) 1. 접선과 외선 한 점 x에서의 함수 f(x)의 접선 (tangent line)은 그 점에서 함수의 그래프를 스쳐지나가는 직선으로 그 점과 평행입니다. 그림 1. 위 그림에서 직선 y는 곡선 f(x)위의 점 A(0.3, f(0.3))에 대한 접선입니다. 이 접선은 곡선의 다른 점 B를 통과합니다. 이와같이 어떤 점의 접선이 동일한 함수의 다른 점과 교점을 이루는 선을 외선 (scant line)이라고 합니다. 위의 경우 직선 y의 식은 접점(점A)과 외선을 이루는 점B를 알 수 있으므로 쉽게 계산할 수 있습니다. 예 1)   x=1에서 f(x)=152x2의 접선? 그림 2. 위 그림에서 f(x) 위의 접점 A를 지나는 접선 a의 식을 계산하기 위해서는 a를 지나는 다른 점을 알거나 그 직선의 기울기를 알아야 합니다. 위 그림에서는 두 가지 모두 미지수입니다. 그러나 함수 f(x)위의 두 점 A와 B를 지나는 직선을 계산할 수 있습니다. 이 직선을 이용하여 접선을 추정할 수 있습니다. 위 그림에서 b의 기울기는 다음과 같이 계산할 수 있습니다. f(0.5)f(1.32)0.51.32 import numpy as np import pandas as pd from sympy import * x=symbols("x") f=5-2*x**2 s1=(f.subs(x,0.5)-f.subs(x, 1.32))/(0.5-1.32) N(s1, 2) −3.6 그림 2의 점 B가 점 A쪽으로 근접할수록 직선 b는 직선 a와 근사해질 것입니다.(그림 3) A로 수렴하는 여러 점들에 대한 기울기를 계산하면 다음과 같습니다. x_p=np.linspace(0.51, 1, 5) np.around(x_p, 2) array([0.51, 0.63, 0.76, 0.88, 1. ]) slope=[] bias=[] for j, i in enumerate(...

우분투에 필요한 프로그램들 설치

1. 프린트 스크린  Shift + Ctrl + Print Screen 키를 누르면 마우스 커서가 십자 모양으로 바뀌며  캡처 하려는 영역을 사각형으로 지정하여 캡처할 수 있습니다. 캡처 결과를 클립보드에 복사되며 Ctrl + V를 눌러 원하는 프로그램에서 붙여넣기 할 수 있습니다.  2. 그림판  윈도우 그림판과 유사한 프로그램인 kolourpaint 터미널에서  sudo apt-get install kolourpaint4 실행  kolourpaint 3. sigil 설치 및 upgrade 1) 터미널에서 ~sudoaddaptrepositoryppa:ubuntuhandbook1/sigil2)installorupgradesudoaptupdatesudoaptinstallsigil3)uninstallsudoaptgetremoveautoremovesigilsigildata4.(UIM)18.04iBusVisualStudioCode.UIM.sudo apt install uim  설치후 - 프로그램 메뉴에서 --> 언어지원(또는 setting(제어판) )--> 지역 및 언어에서 "설치된 언어 관리" 클릭 - 언어지원 창에서 키보드 입력기를 uim으로 변경 - 재부팅 재부팅후 프로그램 메뉴에서 --> 입력기에서  - 전체적인 설정 --> 입력기 이용준비 디폴트 입력기 지정 체크 디폴트 입력기 : 벼루 사용되는 입력기 : 모두 지우고 "벼루" 만 남김 - 툴바 Display behavor > Display : Never  - 전체적인 키 설정 : [전체] 켜기, [전체] 끄기의 모든 내용을 지웁니다. ...

sympy와 미분

미분 sympy 에서 미분은  diff()  함수를 사용합니다 . diff( 식 ,  기준이 되는 변수 ) >>> from sympy import * >>> x, y, z = symbols('x y z') >>>  diff(cos(x),x) -sin(x) >>>  diff(exp(x**2), x) 2*x*exp(x**2) 위의  diff() 에 의한 미분은  1 차 미분을 나타낸 것이고 다중 미분역시 이 함수를 사용하여 수행할 수 있습니다 .  다중 미분을 위해서 미분을 위한 변수를 여러차례 전달해야 한다 .  즉 ,  변수를 전달하는 횟수만큼 미분이 실행됩니다 .  다음은  4 제곱인  x 를  4 번 미분한 것으로 결과는  24 입니다 . >>>  diff(x**4, x) 4*x**3 >>>  diff(x**4, x,x,x,x) 24 즉, 위의 경우는((((x4)))))과 같습니다. 이와같은 다중 미분은 다음과 같이  diff(식, 변수, 미분횟수) 로 사용할 수 있습니다.  >>>  diff(x**4, x,4) 24 미분을 여러번 시행할 경우 횟수만큼 변수를 전달하는 대신 대상이 되는 변수와 함께 미분의 횟수를 전달하는 것으로 동일한 효과를 나타낼 수 있습니다 . 이 방법으로 다중의 변수에 대해 미분을 실행할 수 있습니다. 즉,  함수에 전달하는 변수의 순서에 따라 미분이 실행됩니다 .  예를들어 다음을 실행합니다 . >>> eq=exp(x*y*z) >>> diff(eq, x)...

window, ubuntu간의 공유폴더 생성

우분투에서 samba를 사용하여 공유폴더를 생성 1. Samba 생성 sudoaptgetinstallsamba2.sambamkdir samba 3. samba config 수정 /etc/samba/smb.conf 열어 다음과 같이 편집 You can't use 'macro parameter character #' in math modesudo /etc/init.d/smbd restart samba 서버에 관련된 명령은 다음과 같습니다. You can't use 'macro parameter character #' in math modesudo service smbd stop #samba server 멈춤 You can't use 'macro parameter character #' in math modesudo ufw allow 139 $sudo ufw allow 445 4. 윈도우 탐색기 연결하기 ...

sympy.solvers로 방정식해 구하기

sympy.solvers로 방정식해 구하기 대수 방정식을 해를 계산하기 위해 다음 함수를 사용합니다. sympy.solvers.solve(f, *symbols, **flags) f=0, 즉 동차방정식에 대해 지정한 변수의 해를 계산 f : 식 또는 함수 symbols: 식의 해를 계산하기 위한 변수, 변수가 하나인 경우는 생략가능(자동으로 인식) flags: 계산 또는 결과의 방식을 지정하기 위한 인수들 dict=True: {x:3, y:1}같이 사전형식, 기본값 = False set=True :{(x,3),(y,1)}같이 집합형식, 기본값 = False ratioal=True : 실수를 유리수로 반환, 기본값 = False positive=True: 해들 중에 양수만을 반환, 기본값 = False 예 x2=1의 해를 결정합니다. solve() 함수에 적용하기 위해서는 다음과 같이 식의 한쪽이 0이 되는 형태인 동차식으로 구성되어야 합니다. x21=0 import numpy as np from sympy import * x = symbols('x') solve(x**2-1, x) [-1, 1] 위 식은 계산 과정은 다음과 같습니다. x21=0(x+1)(x1)=0x=1or1x4=1의 해를 결정합니다. solve() 함수의 인수 set=True를 지정하였으므로 결과는 집합(set)형으로 반환됩니다. eq=x**4-1 solve(eq, set=True) ([x], {(-1,), (-I,), (1,), (I,)}) 위의 경우 I는 복소수입니다.즉 위 결과의 과정은 다음과 같습니다. x41=(x2+1)(x+1)(x1)=0x=±1,±1=±i,±1 실수...

함수(Function)

함수의 정의 함수의 정의역(domain)과 치역(range) 역함수(Inverse function) 함수(Function) 함수의 정의 식에 입력되는 값에 대응하는 정확히 하나의 수를 생성한다면 그 식을 함수라고 합니다. 예)   1. 다음 식은 함수? 1) y=x 2 +1 한개의 값 x에 대응되는 y 역시 하나입니다. 그러므로 함수입니다. 2) y 2 =x+1 한개의 값 x에 대응되는  y의 값은 한 개 이상일 수 있습니다. 예로 x=3일 경우 y값은 두개 입니다. y 2 = 4 → y=2 or -2 그러므로 이 식은 함수가 아닙니다. import numpy as np from sympy import * 일반적으로 함수는 f(x)로 나타냅니다. f(x) = 2x 2 -5x+3 식 f(x)에서 x=3 인 경우의 대응되는 값은 다음과 같이 하나입니다. f=2*x**2-5*x+3 f.subs(x, 3) 6 위 코드와 같이 수학의 수식을 표현하고 계산하기 위해 sympy 패키지 를 사용합니다. 함수의 정의역(domain)과 치역(range) 정의역 은 함수에 전달할 수 있는 모든 값의 범위이며 함수로 전달되는 각 값에 대응하는 결과를 치역 이라고 합니다. 예를들어 f(x) =5x-3의 경우 이 함수 x값에 전달할 수 있는 값들과 이 함수에 의해 생성되는 결과의 범위는 다음과 같습니다. Domain:(,) range: (,) g(x)=47t에서 변수 t에 전달할 수 있는 수는 한정되어 있습니다. 즉, 제곱근의 수는 0을 포함하는 양수이어야 합니다. 즉, 47t0t47 Domain: (,47] 구간을 표시할 때 괄호' ( ) '와 대괄호' [ ] '를 사용합니다. 대...

다항식과 인수분해

다항식(plynomial) 내용 하나의 변수를 가진 다항식 두개의 변수를 가진 다항식 연산 다항식의 인수분해 (factoring polynomials) 하나의 변수를 가진 다항식 식 1은 하나의 변수를 가진 다항식을 표현한 것입니다. axn(식 1)a:계수(coeficient)x:변수(variable)n:차수(degree) 다항식의 차수는 0을 포함하는 양의 정수이어야 합니다. 다항식 전체의 차수를 표현할 경우는 가장 높은 것으로 나타냅니다. 예 1) (1) A = 5 x 12 - 2 x 6 + 5 x 5 - 198 x + 1: 식 A의 차수는 12입니다. (2) B=-8: B는 -8x 0 와 같습니다. 그러므로 차수는 0입니다. (3) 5x-7: 역시 다항식입니다. 차수는 1입니다. 이와 같이 다항식은 변수의 차수가 반드시 1이상일 필요는 없으며 차수가 0으로 변수를 포함하지 않는 경우 역시 다항식으로 표현됩니다. 예 2) 다음식들은 다항식이 아닙니다. (1)4x6+15x4+7 : 음수(-4) 차수를 포함 (2)5xx+3: 차수 12는 정수가 아닌 차수 (3)3x+x32: 음수인 차수(-1) 물론 계수에는 이러한 제한이 없습니다. 두개의 변수를 가진 다항식 식 2는 두개의 변수를 가진 다항식의 일반 형태입니다. (식 2)axnyma:계수x,y:변수n,m:차수 두 변수를 ...

지수(Exponents) 계산

내용 지수 계산 지수함수들의 연산특성 지수함수의 계수 지수 계산 an=aaa 즉, a를 n번 곱하는 것을 의미합니다. 이 식의 a를 밑수, n을 지수라고 합니다. 지수는 python에서는 a**n , 내장함수인 pow(밑수, 지수) 또는 numpy 모듈의 power(밑수, 지수) 를 적용할 수 있습니다. 또한 sympy 모듈의 Pow(밑수, 지수) 를 적용하여 미지수를 포함한 지수를 표현할 수 있습니다. import numpy as np from sympy import * 2**5, pow(2, 5), np.power(2, 5) (32, 32, 32) a, n=symbols("a, n") eq=Pow(a, n) eq an eq.subs({a:2, n:5}) 32 지수가 분수로 나타낼 수 있을 경우 식 1과 같이 거듭제곱근(radical)로 나타낼 수 있습니다. (1)a1n=an np.power(2, 1/2) 1.4142135623730951 eq.subs({a:2, n:1/2}) 1.4142135623731 지수가 음수일 경우는 식 2와 같이 계산됩니다. (2)an=1an 2**(-2) 0.25 1/np.power(2, 2) 0.25 지수함수들의 연산특성 지수함수들은 식 2와 같은 특성으로 연산할 수 있습니다. $$\begin{align}\tag{2}\displaystyle &a^na^m=a^{n+m}&\quad(2.1)\&(a^n)^m=a^{n+m}&\quad(2.2)\...