컴퓨터 과학에서 미적분학은 언제 / 어떻게 사용됩니까?


95

많은 컴퓨터 과학 프로그램에는 2 ~ 3 개의 미적분 수업이 필요합니다.

컴퓨터 과학에서 미적분학이 언제 어떻게 사용되는지 궁금합니다. 컴퓨터 과학 학위의 CS 내용은 알고리즘, 운영 체제, 데이터 구조, 인공 지능, 소프트웨어 공학 등에 중점을 두는 경향이 있습니다. 미적분학이 컴퓨터 과학의 이러한 영역이나 다른 영역에 유용한 경우가 있습니까?


6
Google은 목록 질문에 대한 엄격한 정책을 가지고 있지 않지만 일반적인 싫어요가 있습니다. 또한 유의하시기 바랍니다 토론을; 거기에 설명 된 문제를 피하기 위해 질문을 개선하고 싶을 수도 있습니다. 질문을 개선하는 방법을 모르는 경우 컴퓨터 과학 채팅 에서 도움을 줄 수 있습니까?
Raphael

42
모든 과정의 내용이 모든 직업 경로와 관련이 있어야한다고 가정하는 일반적인 실수를하는 것 같습니다. 때로는 특정 방식으로 생각하는 방법을 훈련시키는 것입니다.
Raphael

8
이 질문이 Computer Science 내에서의 사용에 대해서만 요구 하는지 또는 Comp Sci 학위를 받고있는 학생들을위한 모든 사용에 대해 요구 하는지를 명확하게 밝히면 도움이 될 것입니다 . 적어도 미국에서는 Comp Sci 졸업생의 상당수가 상상할 수있는 거의 모든 엔지니어링 영역에 걸쳐 소프트웨어 엔지니어로 퍼져 나갑니다. 이러한 영역의 많은 부분은 다양한 목적으로 미적분학을 이해해야합니다. 모든 CS 졸업생들이 직장에서 미적분학을 사용하는 것은 아니지만 많은 사람들이 아마도 신입생 연도에 생각할 것보다 더 많은 사람들이있을 것입니다.
reirab

1
의견은 긴 토론을위한 것이 아닙니다. 이 대화는 채팅 으로 이동 되었습니다 .
Raphael

나에게 "숫자 분석법을 배울 때 감사와 안심" 이라는 느낌에 매우 유용했습니다 . 이론적 수학의 연속 함수 대신 실제 측정에서 나온 이산 데이터로 작업 할 때, 우리는 너무 많은 시간과 노력이 필요한 지나치게 복잡한 공식 대신 통합이 단지 합계이고 미분이 뺄셈이라는 것이 안도감이었습니다 우리의 미적분 수업에서 배우기 전에!
vsz

답변:


110

직접 미적분학이 필요한 몇 가지 과정을 생각할 수 있습니다 . 나는 일반적으로 컴퓨터 과학 학위에 대한 필수 의무 분야에 대담한 얼굴을 사용했으며, 일반적으로 선택 과목에 대한 이탤릭체를 사용했습니다.

  • 컴퓨터 그래픽 / 이미지 처리, 여기 당신도 해석 기하학과 선형 대수, 필요합니다 많이 ! 이 길을 따라 가다 보면 차등 기하학 (다변량 미적분을 최소 전제 조건으로 사용)을 연구 할 수도 있습니다. 그러나 매우 기본적인 것들을 위해서도 여기에는 미적분학이 필요합니다. 예를 들어 "푸리에 변환"또는 "웨이블릿"을 검색해보십시오. 이는 이미지 작업을하는 사람들을위한 매우 기본적인 도구입니다.
  • 다변량 미적분학이 모든 것을 개발하는 데 사용되는 기본 언어 인 비선형 최적화 . 그러나 미적분학의 선형 최적화 이점조차도 ​​(객관 함수의 파생은 절대적으로 중요합니다)
  • 확률 / 통계 . 다변량 미적분이 없으면 이것들을 심각하게 연구 할 수 없습니다.
  • 통계학 (그리고 결과적으로 다변량 미적분학)을 많이 사용하는 기계 학습
  • 많은 통계를 사용하는 데이터 마이닝 및 관련 주제;
  • Robotics 는 로봇의 물리적 움직임을 모델링해야하므로 부분 미분 및 그라디언트를 알아야합니다.
  • 이산 수학 및 조합 ( 예! , 이산 계산에는 미적분이 필요할 수 있습니다!)-함수 생성에 대해 충분히 심각 해지면 특정 수식을 통합하고 유도하는 방법을 알아야합니다. 그리고 이것은 알고리즘 분석에 유용합니다 (Sedgewick and Flajolet의 "알고리즘 분석"참조). 마찬가지로 Taylor 시리즈와 미적분은 알고리즘 분석에 사용되는 특정 종류의 반복 관계를 해결하는 데 유용 할 수 있습니다.
  • 처음부터 바로 제한 개념을 사용하는 알고리즘 분석 (Landau 표기법 "little "-제한을 사용하여 정의 됨)o

다른 사람들이있을 수 있습니다-이것은 내 머리 꼭대기에 있습니다.

또한 그 외에 기술적으로 엄격하게 논증을 추론하고 설명하는 방법을 배우면 미적분학 과정에서 간접적으로 혜택을 얻을 수 있습니다. 이것은 학생들이 일반적으로 생각하는 것보다 더 가치가 있습니다.

마지막으로, 다른 과학 및 공학 전문가들과 교류하기 위해서는 미적분학이 필요합니다. 컴퓨터 과학자가 이야기를 할뿐만 아니라 물리학 자나 엔지니어와 함께 일해야한다는 것은 드문 일이 아닙니다.


34
아마도 당신은 다른 경험을 가지고 있었지만, 미적분학은 논증을 추론하고 설명하는 방법을 배우는 데 쓸모가 없다는 것을 알았습니다. 그것은 고등학교 대수학과 기하학과 거의 같은 rote와 pattern matching으로 가르쳐졌습니다. 다른 한편으로는 몇 가지 더 높은 수학 수업의 전제 조건이었다 이 기술을 가르치는, 그래서 그것을 완전히 쓸모가 아니었다 가정합니다.
tsleyson

6
나는 마지막 시점 (간접적 이점)과 전적으로 관련 될 수 있습니다. 프로그래밍 언어 이론을 연구하면서 미적분학을 직접 사용하는 경우는 거의 없었습니다. 아마도 가장 직접적인 적용은 확률 론적 계산 모델 (예 : Plotkin & Jones 확률 적 파워 도메인)에 있었을 것입니다. 그러나 나의 미적분학 과정은 대부분 물건을 증명하는 것에 관한 것이며, 이것은 매우 가치가있었습니다. 하나 또는 두 개의 미적분학 과정이 모든 심각한 CS 프로그램에서 더 많은 수학 (이산 수학, 논리, 선형 대수, 수치 분석, ... 및 범주, 토폴로지, 대수 등)과 함께 필요합니다.
chi

3
컴퓨터 그래픽에서 미적분학이 필요한 방법의 예는 다음과 같습니다. 부드러운 보간 함수는 기본적으로 모두``형식 f(0) = 0이며 f(1) = 1, f'(0) = f'(1) = 0예를 들어 관심있는 다른 제약 조건을 추가 할 수 있습니다 f'(0.5) = 1. 얼마 전에 나는 이미지를 부드럽게하기 위해 다른 보간 다항식을 도출하기 위해 이것을 사용했습니다.
porglezomp

3
로봇 공학은 모든 종류의 물리 모델링으로 확장 될 수 있습니다 (조명에 관해서는 CG도 포함하므로 운동 물리학 모델링이라고합시다). 여기에는 가속 / 속도, 바운스 / 스프링 / 변형, PID 컨트롤러, 음향, 중력이 포함됩니다.
metao

2
저는 이런 식으로 간접적으로 지적하겠습니다. 이전에 취한 수업보다 더 나은 Calculus는 학생들에게 단순히 문제의 수를 세고 과제가 얼마나 많은지를 추정 할 수는 없음을 학생들에게 가르칩니다.
candied_orange

20

이것은 다소 모호하지만 대수 데이터 형식에서 미적분학이 나타납니다. 주어진 유형의 경우, 단일 홀 컨텍스트의 유형은 해당 유형의 파생물입니다. 전체 주제에 대한 개요는 이 훌륭한 강연 을 참조하십시오 . 이것은 매우 기술적 인 용어이므로 설명하겠습니다.

대수 데이터 타입

제품 유형 이라고하는 튜플을 발견했을 수도 있습니다 (그렇지 않은 경우 두 유형 의 카티 전 이기 때문입니다 ). 우리는 이것을 문자 그대로 가져 와서 표기법을 사용할 것입니다.

ab

튜플을 나타 내기 위해 와 는 모두 유형입니다. 다음으로 합계 유형 을 발견 할 수 있습니다.이 유형은 하나의 유형이거나 다른 유형 ( union , variant 또는 Haskell 의 Either 유형 (kinda)) 일 수 있습니다. 우리는 이것을 문자 그대로 가지고 표기법을 사용할 것입니다.bab

a+b

유형 에 값이 있고 유형 에 값 이 유형 에 값 이 있기 때문에 이름 이 됩니다.N a b N b a + b N a + N baNabNba+bNa+Nb

이러한 유형은 정상적인 대수적 표현처럼 보이며 실제로는 한 지점으로 조작 할 수 있습니다.

기능적 언어에서 목록의 일반적인 정의 (여기서는 Haskell로 제공됨)는 다음과 같습니다.

data List a = Empty 
            | Cons a List

이것은 목록이 비어 있거나 값의 튜플과 다른 목록이라는 것을 나타냅니다. 이를 대수 표기법으로 변환하면 다음과 같은 이점이 있습니다.

L(a)=1+aL(a)

여기서 은 하나의 값을 가진 유형 (즉, 단위 유형)을 나타냅니다. 반복적으로 삽입함으로써 대한 정의를 얻기 위해 이것을 평가할 수 있습니다 .L ( a )1L(a)

L(a)=1+aL(a)
L(a)=1+a(1+aL(a))
L(a)=1+a+a2(1+aL(a))
L ( a ) = 1 + a + a 2 + a 3 + a 4 + a 5 . . .
L(a)=1+a+a2+a3(1+aL(a))
L(a)=1+a+a2+a3+a4+a5...

( 은 반복 곱셈의 의미로 사용됩니다.)xn

이 정의는 목록 또는 세 등의 어느 단위 또는 한 항목의 튜플, 또는 두 항목의 튜플이라고 다음 말한다 입니다 목록의 정의!

원홀 컨텍스트

이제 단일 홀 컨텍스트 : 단일 홀 컨텍스트는 제품 유형에서 '가치'를 얻을 때 얻는 것입니다. 예를 들어 보자.

a2aa+a2a

3 튜플에서 값을 가져 오면 2 튜플이 생성되지만 세 가지 변형이 있습니다.

(a,a,_)
(a,_,a)
(_,a,a)

3a2a3

마지막 예제에서는 목록을 사용하겠습니다.

목록에 대한 원래 표현을 취하면 :

L(a)=1+aL(a)

우리는 다음을 얻기 위해 재정렬 할 수 있습니다.

L(a)=11a

(표면에서 이것은 말도 안되는 것처럼 보일 수 있지만,이 결과의 테일러 시리즈를 취하면 앞에서 얻은 정의를 얻습니다.)

이제 우리가 이것을 구별하면 흥미로운 결과를 얻습니다.

L(a)a=(L(a))2

따라서 하나의 목록이 한 쌍의 목록이되었습니다. 실제로 이것은 의미가 있습니다. 생성 된 두 목록은 원래 목록의 구멍 위 아래에있는 요소에 해당합니다!


이것은 놀랍도록 통찰력이있었습니다. 감사.
D. Ben Knoble

12

수치 적 방법. 특정 애플리케이션에 고유 한 번거로운 미적분 문제가 있으며, 인간이 프로그램없이 실제로 해결할 수있는 것보다 더 빠른 솔루션이 필요합니다. 솔루션을 계산할 알고리즘을 설계해야합니다. 프로그래머와 과학자를 분리시키는 유일한 방법이 아닙니까?


3
이 질문의 "목록"특성을 감안할 때 모든 답변은 전체 그림을 제공해야합니다. 수치 적 방법이 유일한 사례 라고 주장하고 싶 습니까?
Raphael

의견은 긴 토론을위한 것이 아닙니다. 이 대화는 채팅 으로 이동 되었습니다 .
Raphael

12

자동화 -로봇과 마찬가지로 자동화 는 많은 인간 행동을 정량화해야합니다.

계산 -교정 솔루션을 찾으려면 종종 미적분학이 필요합니다.

시각화 -고급 알고리즘을 사용하려면 cos, sine, pi 및 e와 같은 미적분이 필요합니다. 특히 벡터, 충돌 필드 및 메시를 계산할 때.

물류 및 위험 분석 -작업이 가능한지, 관련 위험 및 가능한 성공률을 결정합니다.

보안 -대부분의 보안은 미적분없이 수행 할 수 있습니다. 그러나 설명을 원하는 많은 사람들은 수학적 표현에서 설명을 선호합니다.

AI - AI 의 기본은 미적분학없이 활용할 수 있습니다. 그러나 고급 행동, 집단 지능 / 하이브 정신 및 복잡한 가치 기반 의사 결정을 계산합니다.

의료 계산 -대부분의 건강 데이터를 시각화하려면 EKG 판독 값과 같은 미적분학이 필요합니다.

과학 및 엔지니어링 -거의 모든 다른 과학 분야와 협력하려면 우주 항공, 점성술, 생물학, 화학 또는 공학 등의 미적분학이 필요합니다.

프로그래밍에 종사하는 많은 사람들은 미적분학을 사용하지 않고도 경력을 쌓을 수 있습니다. 그러나 기꺼이 일을한다면 귀중한 것이 될 수 있습니다. 저에게는 자동화, 물류 및 시각화에서 가장 효과적이었습니다. 특정 패턴을 식별함으로써 단순히 패턴을 무시하거나 패턴을 모방하거나 우수한 방법을 함께 개발할 수 있습니다.


7
πe

3
exp(x)f(x)=f(x)f(0)=1f(x)=g(x)g(x)=f(x)f(0)=0g(0)=1

2
@DavidRicherby : 예 : FPU가없는 마이크로 컨트롤러에서 이러한 기능을 어떻게 구현 합니까? 미적분학을 알고 있다면, 좋은 답은 바로 파워 시리즈입니다.
Nate Eldredge

6

사실 미적분학을 사용할 가능성은 거의 없습니다. 그러나 거의 모든 과학 분야는 미적분학을 사용하며 과학 학위를 받고 있습니다. 대학 과학 학위의 의미에 대한 기대가 있으며 그 중 하나는 미적분학을 알고 있다는 것입니다. 절대 사용하지 않더라도.

미적분학을 제대로하지 않아도 괜찮지 만 이산 수학에 약간의 노력을 기울여야합니다. 이산 수학이 작용하고 그 원리를 무시하면 다른 코더들 앞에서 당황 스러울 수있는 실제 프로그래밍 문제가 많이 있습니다.


9
첫 번째 단락은 음모 이론과 완전히 틀리며 접해 있습니다. 미적분학이 유용한 컴퓨터 과학 분야는 충분합니다 (끝없는 목록은 다른 답변 참조). 물론, 이러한 모든 영역을 피할 수는 있지만 미적분학이 등급을 넘어서도 영향을 미치지 않을 것이라고 주장하는 것은 매우 잘못된 것입니다.
David Richerby

4
학위 프로그램에 따라 미적분학을 사용하지 않고도 학위를 수료 할 수 있으며 CS 전공에는 우리가 얻는 것만 큼 많은 것이 필요하지 않다고 생각합니다. 그러나 제대로 수행하지 않으면 컴퓨터 과학의 가장 흥미로운 영역에서 벗어날 수 있습니다. 일단 졸업하면 웹 개발자가 될 시간이 충분합니다. 학교에 다니면서 자신을 조금만 밀어 보는 것이 어떻습니까?
tsleyson

3
@tsleyson 웹 개발자가 되려면 CS 학위를 취득하는 데 필요한 수업료와 시간을 절약하십시오.
Raphael

8
@ScottB 컴퓨터 과학과 프로그래밍을 혼동하는 것 같습니다.
David Richerby

3
@ScottB 누가 CS = 수학 + 프로그래밍을 말하는가? 나는 나 자신에 대한 이러한 제한된 견해를 옹호 해왔다. 그러나 물리학과 마찬가지로 수학도 CS의 필수 요소입니다. 우리는 필요 우리가하지 않으려는 경우에도, 그것을 실천 을. (이것은이 토론의 장소가 아닙니다. 계속하려면 컴퓨터 과학 채팅 에 참여하십시오 .)
Raphael

4

많은 사람들이 이미 CS로 응용 프로그램을 제공했습니다. 그러나 때때로 당신은 당신이 가장 적게 기대할 때 미적분학을 찾을 것입니다 :

정규식 유도체 재검토

automata를 알고 있다면이 pdf를 읽을 가치가있을 것입니다.


거기에는 미분 미적분학이 보이지 않습니다. 나는 "유도"라는 단어를 보았지만 전통적인 미분 미적분과 유사한 것을 보지 못했습니다.

2
그것은 "공식 미분"이라고하며, 어떤 식 으로든 미적분학과 관련이 있습니다. 또한 함수 생성, 이산 구조와 관련된 일부 수식 및 실제로 "부드러운 함수"가없는 다른 영역에서도이 작업을 수행 할 수 있습니다.
Jay

@Jay : 중요한 것은 이름이 아닙니다. 미적분학을 이해하면 어떻게 도움이됩니까?
Christian

2
위키 백과 페이지에 설명되어 있습니다. 공식 도함수는 다항식을 포함하는 진통제 구조의 요소에 대한 연산이며, 다항식을 차별화하는 일반적인 규칙은 공식적으로 "거의"입니다. 이들은 임의의 "고리"(또 다른 대수 구조)에 대한 다항식 일 수 있습니다. 그리고 공식 파생 상품의 실제 적용이 있습니다-적어도 하나는 보았습니다 (대수적 Cryptanalysis-세부 사항을 기억할 수 없음).
Jay

4

좀 더 구체적인 예 :

  • 미적분법은 델타 규칙 을 도출하는 데 사용되며 , 이는 일부 유형의 신경망이 '학습'할 수있게합니다.
  • 미적분은 신호 분석에서 매우 중요한 진동 함수의 푸리에 변환을 계산하는 데 사용할 수 있습니다.
  • 미적분학은 컴퓨터 그래픽에서 항상 사용되며 사람들이 지속적으로 새로운 기술을 발견함에 따라 매우 활발한 분야입니다. 기본적인 예는 Kajiya의 렌더링 방정식을 확인하십시오.
  • 미적분학은 계산 기하학 분야에서 중요하며 곡선 및 표면 모델링을 조사합니다.

3

이 다른 훌륭한 답변들에이 점을 덧붙입니다 : rigor in testing .

일부 응용 프로그램에 대한 테스트 사례를 만들 때 계산 구조를 사용하여 예상 실행 시간, 메모리 크기를 예측하고 데이터 구조를 조정할 때 최적의 매개 변수를 선택해야했습니다. 여기에는 예상 반올림 오류 등이 포함됩니다.

통계는 다른 답변에 언급되어 있지만, 계산 알고리즘 을 포함한 수학적 원리를 기반 으로 한 최적화 알고리즘 및 일부 검소한 스트리밍 알고리즘 과 같은 Monte-carlo 알고리즘 을 구체적으로 언급하고 싶습니다 .

미적분학이 필요한 곳에서 일한 특정 산업은 다음과 같습니다.

  • 금융 (거래 플랫폼 생성)

  • 보험 (예상 정책 손실을 계산하기 위해 가정 시나리오에서 보험 정책을 수치 적으로 통합)

  • 물류 (교통 경로 통합 최적화)

  • 신호 처리


3

적분-필수 부분 인 미적분은 CS에서 합산에 대한 생각의 기초로 직접 사용됩니다. Knuth 's Concrete Mathematics 섹션의 일부를 요약하면 계산에 일반적인 관습을 빠르게 인식 할 수 있습니다.

CS 연구의 많은 용도에는 변화를 모니터링하거나 경우에 따라 미래를 예측하려는 프로그래밍 시스템이 포함됩니다. 이러한 시스템 주위의 수학은 미분 방정식과 선형 대수에 뿌리를두고 있으며 미분 방정식은 미적분학입니다. Gibert Strang과 같은 교사가 미분 방정식 부분으로 더 빨리 이동하는 것을 옹호하지만 여전히 미적분의 일부입니다. 변화가 어떤 시스템의 변화에 ​​의존 할 때, 직관적이지 않고 매우 잘 이해되는 방식으로 불안정하고 안정되기 시작합니다. 합리적인 선형 시스템이 비선형 방식으로 작동하는 이유를 이해하려면 미적분 도구가 필요하거나 문제 공간을 위해 다시 계산해야합니다.

그리고 마지막으로, CS는 종종 다른 사람들의 작업을 읽고 이해하도록 요구하며, 미적분학은 많은 공유 어휘, 컨벤션 및 역사에 대한 첫 번째 노출입니다.


"많은 CS 연구의 용도는 변화를 모니터링하거나 미래를 예측하려는 시도를하는 프로그래밍 시스템과 관련이 있습니다."-이것이 CS 연구 과정을 대표한다고 생각하지 않습니다.
Raphael
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.