전체 글 57

[기계공학/진동및소음] 03. 일자유도 진동계의 해석

교재: Julia 프로그래밍을 활용한 구조물의 진동해석 (곽문규, 김수민) 3.1 서론  진동학에서 가장 먼저 다루는 대상은 일자유도 진동계(Single-Degree-of-Freedom Vibration System)이다. 일반적으로 제일 단순한 스프링-질량-댐퍼로 이루어진 일자유도 진동계를 가지고 기초적인 진동이론을 설명한다. 스프링은 강성이 있으나 질량이 없는 요소이다. 그리고 강성은 Hooke의 법칙을 따른다고 가정한다. 질량은 질량만 있는 블록이며 강성은 없는 요소이다. 댐퍼는 질량은 없고 속도에 저항하는 요소이다. 각 요소를 수학식으로 표현하면 다음과 같다. Hooke law: $Fs = ks$,    Newton 2nd law: $Fm = mx''$,    Viscous Damper: $Fd ..

[기계공학/진동및소음] 02. 기본 수학1

교재: Julia 프로그래밍을 활용한 구조물의 진동해석 (곽문규, 김수민) 2.1 미분방정식  공학과 미분방정식은 어떻게 연결되어 있을까? 미분은 변화율을 나타낸다. 즉, 미분방정식은 변화를 설명하는 식이라고 말할 수 있다. 그리고 공학 문제 대부분은 이 변화를 예측하는 것과 관련이 있다. 공과대학에서 공부하는 역학 과목들은 대부분 뉴턴 역학에 기반을 두고 있다. 역학 문제들은 공간상의 변화 또는 시간상의 변화에 관한 식으로 귀결된다. 즉, 미분방정식을 얻게 된다.  먼저 종속변수가 하나인 상미분방정식(ODE, Ordinart Differential Equation)을 살펴보자. ODE는 오른쪽 항이 0이면 제차(homogeneous)이고 종속변수의 함수이면 비제차(non-honogeneous)로 나뉜다..

[기계공학/진동및소음] 01. Introduction

교재: Julia 프로그래밍을 활용한 구조물의 진동해석 (곽문규, 김수민) 1.1 진동 이론을 왜 공부하는가?  진동은 구조물이 반복적으로 움직이는 현상을 말한다. 진동을 일으키기 위해서는 진동을 유발하는 기진력(excitation force)이 있어야 한다. 그런데 진동을 심각하게 만드는 한가지 원인이 더 존재한다. 공진(resonance)이라는 현상으로 기진력의 어떤 특정 진동수에 의해 구조물이 매우 심하게 진동하는 현상을 기리킨다. 이 진동수를 고유진동수(Natural Frequency)라고 말한다. 이는 구조물의 종류와 형태에 따라 모두 다르게 나타난다. 그래서 구조물을 설계할 때 그 구조물의 고유진동수를 구하는 것이 필요하다.  진동이라는 현상은 구조물의 움직임이 반복된다는 것을 나타내기에 시간..

[CS과목/자료구조] 12 정렬

교재: C언어로 쉽게 풀어쓴 자료구조 개정 3판 (2019, 천인국 외) 12.1 정렬이란? 정렬(sorting)은 물건을 크기순으로 오름차순(ascending order)이나 내림차순(descending order)으로 나열하는 것을 의미한다. 정렬은 컴퓨터 공학에서 가장 기본적이고 중요한 알고리즘 중의 하나로 자료 탐색에 있어서 필수적이다. 정렬시켜야 할 대상은 레코드(record)라고 부른다. 레코드는 다시 필드(field)라고 하는 단위로 나누어진다. 여러 필드 중에서 특별히 레코드와 레코드를 식별해 주는 역할을 하는 필드를 키(key)라고 한다. 정렬이란 결국 레코드들을 키값의 순서로 재배열하는 것이다. 모든 경우에 있어서 최상의 성능을 보여주는 최적 알고리즘은 존재하지 않는다. 따라서 이들 중..

[CS과목/자료구조] 11 그래프 2

교재: C언어로 쉽게 풀어쓴 자료구조 개정 3판 (2019, 천인국 외) 11.1 최소 비용 신장 트리신장 트리 신장 트리(spanning tree)란 그래프 내의 모든 정점들이 연결되어 있으며 사이클을 포함하지 않는 트리이다. 신장 트리는 그래프에 있는 n개의 정점을 정확히 (n-1)개의 간선으로 연결하게 된다. 신장 트리는 그래프의 최소 연결 부분 그래프가 된다. 최소의 의미는 간선의 수가 가장 적다는 의미히다. 최소 비용 신장 트리 최소 비용 신장 트리(MST: minimum spanning tree)는 신장 트리 중에서 사용된 간선들의 가중치 합이 최소인 신장 트리를 말한다. 이를 구하는 방법으로는 Kruskal과 Prim이 제안한 알고리즘이 대표적으로 사용되고 있다. 11.2 Kruskal의 M..

[CS과목/자료구조] 10 그래프 1

교재: C언어로 쉽게 풀어쓴 자료구조 개정 3판 (2019, 천인국 외) 10.1 그래프란?그래프의 소개 그래프(graph)는 객체 사이의 연결 관계를 표현할 수 있는 자료 구조다. 그래프 이론(graph theory)은 컴퓨터 학문 분야의 활발한 연구 주제이며 문제 해결을 위한 도구로서 많은 이론과 응용이 존재한다. 우리는 여기서 그래프의 기본적인 알고리즘에 대해서 학습한다. 10.2 그래프의 정의와 용어그래프의 정의 그래프는 정점(vertex)과 간선(edge)들의 유한 집합이라 할 수 있다. 수학적으로는 G = (V, E)와 같이 표현한다. 여기서, V(G)는 그래프 G의 정점들의 집합을, E(G)는 그래프 G의 간선들의 집합을 의미한다. 정점은 여러 가지 특성을 가질 수 있는 객체를 의미하고, 간..

[CS과목/자료구조] 09 우선순위 큐

교재: C언어로 쉽게 풀어쓴 자료구조 개정 3판 (2019, 천인국 외) 9.1 우선순위 큐 추상 데이터 타입우선순위 큐의 소개 우선순위 큐는 우선순위의 개념을 큐에 도입한 자료구조이다. 보통의 큐는 선입 선출(FIFO)의 원칙에 의하여 먼저 들어온 데이터가 먼저 나가게 된다. 그러나 우선순위 큐(priority queue)에서는 데이터들이 우선순위를 가지고 있고 우선순위가 높은 데이터가 먼저 나가게 된다. 히프(heap)구조가 우선순위 큐를 가장 효율적으로 구현할 수 있다. 우선순위 큐는 2가지로 구분할 수 있는데, 최소 우선순위 큐는 가장 우선순위가 낮은 요소를 먼저 삭제한다. 최대 우선순위 큐는 반대로 가장 우선순위가 높은 요소가 먼저 삭제된다. 9.2 우선순위 큐의 구현 방법히프를 사용하는 방법 ..

[CS과목/자료구조] 08 트리

8.1 트리의 개념 만약 자료가 계층적인 구조(hierarchical structure)를 가지고 있다면 리스트, 스택, 큐 등의 선형 자료 구조(linear data structure)는 더 이상 적합하지 않다. 트리(tree)는 이러한 계층적인 자료를 표현하는데 적합한 자료구조이다. 트리는 인공 지능 문제에서도 사용된다. 대표적인 것이 결정 트리(decision tree)이다. 결정 트리는 인간의 의사 결정 구조를 표현하는 한 가지 방법이다. 이러한 구조를 트리라고 부르는 이유는 마치 실제 트리를 거꾸로 엎어놓은 것 같은 모양을 하고 있기 때문이다. 트리의 용어들 트리의 구성 요소를 노드(node)라 한다. 트리는 한 개 이상의 노드로 이루어진 유한 집합이다. 이들 중 하나의 노드는 루트(root) ..

[CS과목/자료구조] 07 연결 리스트 2

교재: C언어로 쉽게 풀어쓴 자료구조 개정 3판 (2019, 천인국 외) 7.1 원형 연결 리스트 원형 연결 리스트란 마지막 노드가 첫 번째 노드를 가리키는 리스트이다. 즉 마지막 노드의 링크 필드가 NULL이 아니라 첫 번째 노드 주소가 되는 리스트이다. 원형 연결 리스트가 특히 유용한 경우는 리스트의 끝에 노드를 삽입하는 연산이 단순 연결 리스트보다 효율적일 수 있다는 것이다. 원형 연결 리스트에서 헤드 포인터가 마지막 노드를 가리키고, 첫 번째 노드는 head->link가 가리키고 있으므로, 리스트의 처음과 끝에 노드를 삽입할 수 있다. 원형 리스트의 처음에 삽입ListNode* insert_first(ListNode* head, element data){ ListNode* node = (ListN..

[CS과목/자료구조] 06 연결 리스트 1

교재: C언어로 쉽게 풀어쓴 자료구조 개정 3판 (2019, 천인국 외) 6.1 리스트 추상 데이터 타입리스트의 소개 리스트(list)는 우리들이 자료를 정리하는 방법 중의 하나이다. 리스트에는 항목들이 차례대로 저장되어 있다. 리스트의 항목들은 순서 또는 위치를 가진다. 리스트는 집합하고는 다르다. 집합은 각 항목 간에 순서의 개념이 없다.L = [item(0), item(1), item(2), ... , item(n-1)]리스트는 다음과 같은 기본적인 연산들을 생각할 수 있다.리스트에 새로운 항목을 추가한다(삽입 연산).리스트에서 항목을 삭제한다.(삭제 연산).리스트에서 특정한 항목을 찾는다(탐색 연산). 6.3 연결 리스트 이번 절에서 연결된 표현(linked representation)에 대하여 ..