본문 바로가기

분류 전체보기324

뉴턴방법 (Newton’s Method) 경사하강법(gradient descent)이 어떤 함수의 최소값을 향한 방향을 계산하는데 1차 미분을 사용하는 반면 뉴턴방법(Newton's method)는 2차 미분을 사용한다. 따라서 뉴턴방법이 경사하강법보다는 성능이 훨씬 좋다. 제약조건이 없는 최적화 문제는 다음과 같다. \[ \min_{\mathbf{x}} f(\mathbf{x}) \tag{1} \] 여기서 \(\mathbf{x} \in \mathbb{R}^n\) 은 최적화 변수이고, \(f(\mathbf{x})\) 는 목적함수(objective function)이다. 목적함수는 두 번 미분가능하다고 가정한다. 뉴턴방법의 기본 개념은 최적화 변수의 시작값(starting point) \(\mathbf{x}\) 에서 목적함수 \(f(\mathbf{.. 2022. 4. 8.
내부점 방법 (Interior-Point Method)의 개념 다음 사진은 내부점 방법(interior-point method)에 대해서 1984년 11월 19일에 뉴욕 타임즈지에 실린 기사를 캡쳐한 것이다. 기사 제목은 'Breakthrough in Problem Solving'이다. 전문적인 수학 알고리즘에 대해서 과학 전문지도 아닌 일반 신문에 기사화되는 일은 매우 드문데, 그만큼 내부점 방법의 중요성을 말해주는 것 같다. 그럼 최적화 이론에서 혁명적인 방법으로 일컬어지는 내부점 방법에 대해서 알아보도록 하자. 내부점 방법은 기본적으로 KKT조건식의 해를 구하기 위한 방법이다. 하지만 KKT 조건식을 직접 푸는 대신 조금 수정한 식을 풀어서 점근적으로 최적해를 찾아가는 방법을 택했다. 제약조건이 있는 컨벡스(convex) 최적화 문제에 대해서 \[ \begin.. 2022. 4. 6.
프라이멀 문제와 듀얼 문제의 유도 제약조건을 갖는 최적화 문제는 지시함수(indicator function)를 이용하면 제약조건이 없는 최적화 문제로 바꿀 수 있다. 지시함수는 어떤 집합에 어떤 값이 속하는지를 표시하는 함수로서 어떤 집합 \(\mathcal{X}\) 의 지시함수 \(I_{\mathcal{X}}\) 는 다음과 같이 정의된다. \[ I_{\mathcal{X}} (\mathbf{x}) = \begin{cases} 0, & \mbox{if } \mathbf{x} \in \mathcal{X} \\ \infty, & \mbox{if } \mathbf{x} \notin \mathcal{X} \end{cases} \tag{1} \] 다음과 같은 제약조건을 갖는 최적화 문제가 있을 때, \[ \begin{align} & \min_{\m.. 2022. 4. 4.
오일러의 회전 정리 (Euler’s Rotation Theorem) 오일러각 좌표변환 방법에서 알아본 회전축은 좌표계의 \(x\) 축, \(y\) 축, \(z\) 축이었다. 하지만 좌표계를 구성하는 좌표축만이 아니라 임의의 축, 즉 임의의 방향을 중심으로 좌표계를 회전시킬 수도 있다. 단위벡터는 크기가 \(1\) 인 벡터이기 때문에 방향을 표시하는데 자주 쓰인다. 여기서도 회전축 방향을 정하는데 단위벡터를 이용하기로 하고 기호로 \(\hat{p}\) 으로 표시하기로 한다. 좌표계 \(\{a\}\) 를 회전축 \(\hat{p}\) 축을 중심으로 \(\beta\) 만큼 회전시키면 새로운 좌표계로 변환되는데 이 좌표계를 \(\{b\}\) 라고 하자. 그러면 그림에서 보듯이 좌표계 \(\{a\}\) 의 좌표축과 회전축 사이의 각도는 좌표계 \(\{b\}\) 의 좌표축과 회전축 .. 2022. 3. 22.
라그랑지 방정식을 이용한 강체 운동방정식 유도 강체(rigid body)의 다양한 지점에 가해지는 모든 외력(external force)은 질량중심(center of mass)에 가해지는 총 외력으로 합산할 수 있고 질량중심은 마치 강체의 모든 질량이 그 중심에 집중되어 있는 질점(point mass)처럼 운동한다. 또한 외력은 강체의 다양한 지점에서 작용하기 때문에 질량중심에 대해서 모멘트를 만들고 이 모멘트는 질량중심에 대한 회전운동을 생성한다. 이와 같이 강체의 운동은 질량중심의 병진운동과 질량중심에 대한 회전운동으로 분리할 수 있다. 이제 강체 운동방정식을 라그랑지 방정식(Lagrange's Equation)을 이용하여 유도해 보도록 하겠다. 강체의 운동에너지도 질량중심의 병진 운동에너지와 질량중심에 대한 회전 운동에너지의 합으로 표현할 수 .. 2022. 2. 14.
강체의 운동방정식 - 4 지금까지 질량중심을 기준으로 강체(rigid body)의 운동방정식을 유도하였다. 이번에는 강체에 고정되어 있는 임의의 점 \(A\) 에 대해서 강체의 운동방정식을 유도해 보도록 하겠다. 임의의 점 \(A\) 에 대한 파티클 시스템(systems of particles)의 운동방정식은 다음과 같았다. \[ \begin{align} & \sum_{j=1}^n \vec{F}_j = m \frac{^i d^2 \vec{r}_G}{dt^2} = m \frac{^i d \vec{v}_G }{dt} \tag{1} \\ \\ & \frac{^i d \vec{H}_A}{dt} = m \frac{^i d \vec{r}_{G/A}}{dt} \times \vec{v}_G + \sum_{j=1}^n \vec{M}_{jA} \.. 2022. 2. 7.
강체의 운동방정식 - 3 지금까지 파티클 시스템(systems of particles)에 대해서 다음과 같은 운동방정식을 얻었다. \[ \begin{align} & \sum_{j=1}^n \vec{F}_j =m \frac{^id^2 \vec{r}_G }{dt^2}= m \frac{^id \vec{v}_G }{dt} \tag{1} \\ \\ & \sum_{j=1}^n \vec{M}_{jG} = \frac{^id \vec{H}_G }{dt} \tag{2} \\ \\ & \vec{H}_G= \sum_{j=1}^n \vec{r}_{j/G} \times m_j \frac{^id \vec{r}_j}{dt} \\ \\ & T= \frac{1}{2} m \vec{v}_G \cdot \vec{v}_G + \frac{1}{2} \sum_{j=1}.. 2022. 2. 6.
강체의 운동방정식 - 2 관성좌표계의 원점 \(O\) 에 대한 파티클 시스템의 총 각운동량 \(\vec{H}_O\) 를 다음과 같이 정의한 바 있다. \[ \vec{H}_O= \sum_{j=1}^n \vec{r}_j \times m_j \vec{v}_j \tag{1} \] 여기서 \(\vec{v}_j\) 는 파티클 \(j\) 의 속도로서 \(\vec{v}_j= \frac{^i d\vec{r}_j}{dt}\) 이다. 임의의 점 \(A\) 에 대한 파티클 시스템의 총 각운동량 \(\vec{H}_A\) 는 다음과 같이 정의한다. \[ \vec{H}_A = \sum_{j=1}^n \vec{r}_{j/A} \times m_j \vec{v}_j \tag{2} \] 여기서 \(\vec{r}_{j/A}\) 는 점 \(A\) 에서 파티클 \(j.. 2022. 2. 5.
강체의 운동방정식 - 1 고체(solid body)는 많은 수의 파티클 (또는 질점)로 구성되어 있는 파티클 시스템(systems of particles)이라고 볼 수 있다. 그 중에서 파티클 사이의 거리가 변하지 않는 시스템을 강체(rigid body)라고 한다. 파티클 사이의 거리가 시간에 따라서 변하는 시스템은 비강체 또는 유연체(탄성체 또는 비탄성체)라고 한다. 파티클 시스템에 적용되는 기본 원리도 강체에 적용되므로 강체의 운동 방정식을 유도하기 위해서 우선 파티클 시스템의 운동 방정식을 유도해 보기로 한다. 다음과 같이 \(n\) 개의 파티클로 구성된 시스템에서 파티클 \(j\) 에 작용하는 힘에는 외력(external force) \(\vec{F}_j\) 와 내력(internal force) \(\vec{f}_{jk}.. 2022. 2. 3.
버거스 방정식 기반 신경망 (Burgers’ Equation-Informed Neural Network) 코드 업데이트 일전에 포스팅한 버거스 방정식(Burgers' equation)에 대한 물리정보신경망(PINN, Physics-Informed Neural Network) Tensorflow2 코드를 업데이트했다. 버거스 방정식과 초기조건, 경계조건, 그리고 신경망 구조, 콜로케이션 포인트, 데이터 포인트 등은 모두 전에 사용된 코드와 동일하다. https://pasus.tistory.com/162 차이점은 두가지다. 먼저 물리정보 신경망에서 \(u_t, u_x, u_{xx}\) 를 계산할 때 기존의 tf.GradientTape.gradient 대신에 tf.gradients 함수를 사용했다. 해당 코드는 다음과 같다. @tf.function을 사용해서 한결 간단해졌다. @tf.function def physics_net.. 2022. 1. 11.