반응형

전체 글 194

공업수학 요점정리 #5 - 라플라스 변환(Laplace Transform)

수식이 깨져서 보일 경우 PC 버전으로 봐주시길 바랍니다. 자세한 증명은 전공서나 강의를 참고하시길 바랍니다. 앞서 본 2계 상미분 방정식을 푸는 정형화된 방법 외에, Initial Value Problem에 있어서 강력한 방법 하나를 소개하고자 한다. 앞서 소개된 2계 상미분 방정식의 homogeneous case는 계수가 상수일때만 풀이가 가능했다. 라플라스 변환을 이용하면 계수가 상수가 아닌 경우에 대해서도 풀이가 가능하다. 라플라스 변환을 이용해 문제를 풀수 있는 경우는 Initial Value Problem에 한정한다. 함수 f를 라플라스 변환하면 다음과 같이 표현된다. $$\mathcal{L}[f](s)=\int_{0}^{\infty} e^{-st}f(t)\,dt$$ $\mathcal{L}[f..

큐와 스택 (Queue and Stack)

1. 큐와 스택 큐 : First In First Out. 먼저 들어간 데이터가 가장 먼저 나간다. 자료투입을 enqueue, 자료 출력을 dequeue라고 한다. 스택 : Last In First Out. 마지막에 들어간 자료가 가장 먼저 나간다. 자료투입을 push, 자료출력을 pop이라고 한다. 2. 큐와 스택을 이용한 간단한 알고리즘 파이썬에서는 리스트 메서드(append, pop)를 이용해 간단히 큐와 스택을 표현할 수 있다. 큐와 스택을 이용하여 회문(바로 읽어도 거꾸로 읽어도 같은 문장)을 찾는 알고리즘을 작성하고자 한다. 큐와 스택은 출력 순서가 서로 반대이다. 즉 큐에서나 스택에서는 읽는 데이터가 순서가 같다면 그 문장은 회문일 것이다. def Palindrome(lst): #큐와 스택 ..

자신을 바꾸는 가장 효과적인 방법 - 『립잇업』(리처드 와이즈먼, 2013)

http://m.yes24.com/Goods/Detail/8951104 립잇업 Rip it up 더 이상 결심할 필요 없다!재미있는 심리학 실험에서 찾은 알짜배기 삶의 기술립잇업 (rip it up)은 뜯어내거나 찢어버린다는 뜻으로, 무언가를 완전히 새롭게 바꾸도록 요구할 때 m.yes24.com 원제 : Rip It Up 번역 : 박세연 출판연도 : 2013 출판사 : 웅진지식하우스 페이지 : 368 저자소개 『립잇업』의 저자 리처드 와이즈먼은 영국의 심리학자로 독특한 연구와 실험으로 영국에서 가장 많이 인용되는 심리학자이다. 2002년에는 심리학 대중화에 대한 공로를 인정받아 영국 유일의 심리학 대중화 교수직에 임명되었다고 한다. 주요 내용과 분석 뜯어고치라는 의미의 제목처럼,『립잇업』은 '행동의 변..

파이썬의 모든 변수는 지역변수이다.

1. 파이썬의 변수의 특성? C언어에서 변수를 선언하면 그 위치에 따라 지역변수인지 전역변수인지 나뉜다. C언어를 먼저 익힌 필자로선 다른 언어도 마찬가지인 줄 알았다. 하지만 파이썬은 달랐다. 파이썬의 모든 변수는 지역변수였다. 예시를 보자. a = ["tom", "jerry", "mike"] jjak = [] n = 0 def findjjak(lst): for i in range(0,len(lst)-1): for j in range(i+1, len(lst)): n = n + 1 jjak.append(a[i] + '-' + a[j]) return jjak print(findjjak(a)) print(n) 이걸 그대로 실행하면 이런 에러가 뜬다. UnboundLocalError: local variabl..

이진탐색 예제 (binary search example)

탐색 범위를 절반으로 줄이는 것을 반복해서 탐색하는 방법이다. 이진탐색은 데이터가 정렬이 되어있음을 전제하고 사용하는 탐색 알고리즘이다. 계산 복잡도는 O(logn)이다. def Binary_search(lst, s_value): start = 0 end = len(lst) -1 #리스트 탐색범위 변수이다. while start lst[mid]: start = mid + 1 else: end = mid - 1 return -1 #찾지 못했을 때 반환하는 값이다. d = [1,4,9,16,25,36,49,64,81] n = 36 print(Binary_search(d, n)) d2 = [1,4,9,16,25,36,49,64,81,100,121,144] n2 = 144 print(Binary_search(d..

병합정렬 오류 해결

https://knowledgeforengineers.tistory.com/22 병합정렬 예제 #병합정렬 예제이다. #내가 먼저 만들어본 코드 오류가 있어서 잡아내야한다.... #문제가 있는 모듈 def mergesort(lst): l = int(len(lst)/2 - len(lst)%2) lst1 = lst[:l] lst2 = lst[l:] if l>1: mergesort(lst.. knowledgeforengineers.tistory.com 전에 병합정렬 예제를 올렸었다. 당시 내가 스스로 작성했던 소스코드가 이랬었다. def mergesort(lst): l = int(len(lst)/2 - len(lst)%2) lst1 = lst[:l] lst2 = lst[l:] if l>1: mergesort(l..

병합정렬 예제

#병합정렬 예제이다. #내가 먼저 만들어본 코드 오류가 있어서 잡아내야한다.... #문제가 있는 모듈 def mergesort(lst): l = int(len(lst)/2 - len(lst)%2) lst1 = lst[:l] lst2 = lst[l:] if l>1: mergesort(lst1) mergesort(lst2) return mergesort_sub(lst1, lst2) # 병합하는 모듈 def mergesort_sub(lst1, lst2): new_lst = [] n1 = len(lst1) n2 = len(lst2) i = 0 j = 0 while n1>0 and n2>0: if lst1[i] > lst2[j]: new_lst.append(lst2[j]) j += 1 n2 -= 1 else: n..

삽입정렬 예제

#삽입정렬 예제이다. #먼저 연습 def insert_sort(lst): l = len(lst) i = 0 lst_sort = [] lst_sort.append(lst[i]) for i in range(0,l): m = len(lst_sort) for j in range(0, m): if lst[i] < lst_sort[j]: lst_sort.insert(j, lst[i]) break #맨 뒤까지 다 찾아봤으나 안보이는 경우 맨 뒤에 쳐박아야한다. if (j == (m-1)) and (lst[i] not in lst_sort) : lst_sort.append(lst[i]) return lst_sort d = [3,1,5,2,4] print(insert_sort(d)) # 책에서 제시하는 삽입정렬 예시이다..

반응형