이것은 다소 모호하지만 미적분은 대수 데이터 유형에서 나타납니다. 주어진 유형에 대해 단일 구멍 컨텍스트의 유형은 해당 유형의 파생물입니다. 전체 주제에 대한 개요는 이 훌륭한 강연 을 참조하세요. 이것은 매우 기술적 인 용어이므로 설명하겠습니다.
대수 데이터 유형
제품 유형 (만약 두 가지 유형의 데카르트 제품 이기 때문입니다. 우리는 이것을 문자 그대로 받아들이고 표기법을 사용할 것입니다.
$$ a * b $$
$ a $ 및 $ b $ 가 둘 다 유형 인 튜플입니다. 다음으로 합계 유형 이들은 한 유형 또는 다른 유형일 수있는 유형입니다 ( unions , 변형 또는 Either type (kinda) in Haskell). 우리는 또한 이것을 문자 그대로 가져 와서 표기법을 사용할 것입니다 :
$$ a + b $$
$ a $ 유형에 $가있는 경우 그대로 이름이 지정됩니다. N_a $ 값 및 유형 $ b $ 에는 $ N_b $ 값이 있고 유형 $ a + b $ 에는 $ N_a + N_b $ 값이 있습니다.
이러한 유형 정상적인 대수 표현처럼 보이고 사실 우리는 그것들을 그렇게 (한 지점까지) 조작 할 수 있습니다.
예
기능적 언어에서 목록의 일반적인 정의 (여기 Haskell에서 제공됨)는 다음과 같습니다.
data List a = Empty | Cons a List
이것은 목록이 비어 있거나 값과 다른 목록의 튜플임을 나타냅니다. 이를 대수 표기법으로 변환하면 다음과 같은 결과를 얻을 수 있습니다.
$$ L (a) = 1 + a * L (a) $$
여기서 $ 1 $ 는 하나의 값 (일명 단위 유형)이있는 유형을 나타냅니다. 반복해서 삽입하면이를 평가하여 $ L (a) $ 에 대한 정의를 얻을 수 있습니다.
$$ L (a) = 1 + a * L (a) $$ $$ L (a) = 1 + a * (1 + a * L ( a)) $$ $$ L (a) = 1 + a + a ^ 2 * (1 + a * L (a)) $$ $$ L (a) = 1 + a + a ^ 2 + a ^ 3 * (1 + a * L (a)) $$ $$ L (a) = 1 + a + a ^ 2 + a ^ 3 + a ^ 4 + a ^ 5 … $$
( $ x ^ n $ 은 반복되는 곱셈의 의미입니다.)
이 정의는 목록이 단위 또는 튜플이라는 의미입니다. 하나의 항목 또는 두 항목의 튜플 또는 세 개의 항목 등. 목록의 정의입니다!
원홀 컨텍스트
이제 원홀 컨텍스트로 : 원홀 컨텍스트는 제품 유형에서 “가치”를 얻을 때 얻는 것입니다. 예를 들어 보겠습니다.
동종인 간단한 2- 튜플의 경우 $ a ^ 2 $ , 값을 빼면 , 1 튜플, $ a $ 를 얻습니다.그러나이 유형에는 두 개의 다른 원홀 컨텍스트가 있습니다. 즉, 튜플의 첫 번째 값과 두 번째 값입니다. 따라서 둘 중 하나이기 때문에 $ a + a $ , 즉 $ 2 a $ . 이것이 차별화가 필요한 곳입니다. 다른 예를 통해 확인해 보겠습니다.
3- 튜플에서 값을 가져 오면 2- 튜플이 생성되지만 세 가지 변형이 있습니다.
$$ (a, a, \ _) $$ $$ (a, \ _, a) $$ $$ (\ _, a, a) $$
구멍을 넣는 위치에 따라 다릅니다. 이렇게하면 $ 3a ^ 2 $ 는 실제로 $ a ^ 3 $ 의 파생물입니다. 일반적으로 이에 대한 증거가 있습니다. 여기 .
마지막 예에서는 목록을 사용하겠습니다.
목록에 대해 원래 표현식을 사용하는 경우 :
$$ L (a) = 1 + a * L (a) $$
다음을 얻기 위해 재정렬 할 수 있습니다.
$$ L (a) = \ frac {1} {1-a} $$
(표면적으로 말도 안되는 것처럼 보일 수도 있지만이 결과의 테일러 시리즈를 취하면 앞서 도출 한 정의를 얻을 수 있습니다.)
이제 이것을 미분하면 등 흥미로운 결과 :
$$ \ frac {\ partial L (a)} {\ partial a} = (L (a)) ^ 2 $$
따라서 하나의 목록이 한 쌍의 목록이되었습니다. 이것은 실제로 의미가 있습니다. 생성 된 두 목록은 원래 목록의 구멍 위와 아래에있는 요소와 일치합니다.
댓글
자동화 -로봇 공학, 자동화와 유사 많은 사람의 행동을 정량화해야 할 수 있습니다.
계산 -증명을위한 솔루션을 찾으려면 종종 미적분이 필요합니다.
시각화 -고급 알고리즘을 사용하려면 cos, sine, pi 및 e와 같은 미적분학이 필요합니다. 특히 당신이 미적분 일 때 벡터, 충돌 필드 및 메싱.
물류 및 위험 분석 -작업이 있는지 확인 가능한, 관련된 위험 및 가능한 성공률.
보안 -대부분의 보안을 수행 할 수 있습니다. 미적분없이; 그러나 설명을 원하는 많은 사람들이 수학 표현을 선호합니다.
AI -AI의 기본 미적분없이 활용할 수 있습니다. 그러나 고급 행동, 집단 지능 / 군집 정신, 복잡한 가치 기반 의사 결정 계산.
의학적 계산 -대부분의 건강 데이터를 시각화하려면 EKG 판독 값과 같은 미적분학이 필요합니다.
과학 & 엔지니어링 -거의 모든 다른 과학 분야에서 일할 때 미적분학이 필요합니다 : 항공 우주, 점성술, 생물학, 화학 또는 공학.
프로그래밍 분야의 많은 사람들은 미적분 사용; 그러나 “기꺼이 작업을 수행 할 의향이있는 경우 매우 유용 할 수 있습니다. 저에게는 자동화, 물류 및 시각화에서 가장 효과적이었습니다. 특정 패턴을 식별함으로써 단순히 패턴을 무시하거나 패턴을 모방하거나 개발할 수 있습니다. 우수한 방법입니다.
댓글
다른 훌륭한 답변에이 점을 추가합니다. 테스트의 엄격함 .
일부 애플리케이션에 대한 테스트 케이스를 만들 때 예상 실행 시간, 메모리 크기를 예측하기 위해 미적분을 사용해야했습니다. 데이터 구조를 조정할 때 최적의 매개 변수를 선택합니다. 여기에는 예상 반올림 오류 등의 이해가 포함됩니다.
통계는 다른 답변에서 언급되지만 Monte-carlo 알고리즘 (예 : 최적화 알고리즘 및 일부 저렴한 스트리밍 알고리즘 포함) 미적분.
미적분학이 필요한 분야에서 일한 특정 산업은 다음과 같습니다.
계산- 적분 부분-합산에 대해 생각하기위한 기초로 CS에서 직접 사용됩니다. 요약에 관한 Knuth의 구체적인 수학 섹션의 일부를 살펴보면 미적분에 공통적 인 관습을 빠르게 인식 할 수 있습니다. 연속 사례를 이해하면 이산을 고려할 수있는 도구가 제공됩니다.
다양한 용도 CS 연구에는 변화를 모니터링하거나 경우에 따라 미래를 예측하는 프로그래밍 시스템이 포함됩니다. 이러한 시스템을 둘러싼 수학은 미분 방정식과 선형 대수에 뿌리를두고 있으며 미분 방정식은 미적분입니다. Gibert와 같은 교사가 있습니다. 미분 방정식 부분으로 더 빠르게 이동하는 것을 옹호하지만 여전히 미적분학의 하위 집합입니다. 변화가 어떤 시스템의 변화에 의존 할 때, 그것은 직관적이지 않고 매우 불안정한 방식으로 불안정 해지기 시작합니다. 잘 이해되었습니다. 분별있는 선형 시스템이 비선형 방식으로 작동하는 이유를 이해하려면 미적분 도구가 필요하거나 문제 공간을 위해 도구를 다시 발명해야합니다.
그리고 마지막으로 CS는 종종 타인의 작업을 읽고 이해해야하며 미적분은 많은 공유 어휘, 관습 및 역사에 대한 첫 번째 노출입니다.
댓글