당신이 대학생이든 데이터 과학 분야에서 일하든 상관없이 수학을 둘러싸고 있는 것은 없습니다.
데이터 과학은 응용 수학/통계의 한 유형이라고 주장할 수도 있습니다. 넘파이, 사이파이, 사이킷런및 TensorFlow 수학을 양적으로 다루는 Python 라이브러리 중 일부에 불과합니다.
그러나 수학 기호를 명시적으로 처리하는 경쟁자는 SymPy뿐입니다.
SymPy에 대한 모든 것을 알아봅시다.
심 파이?
SymPy는 Python 기호 수학 라이브러리입니다. 이해하기 쉽고 쉽게 확장할 수 있도록 코드를 가능한 한 기본적으로 유지하면서 완전한 기능을 갖춘 컴퓨터 대수 시스템(CAS)이 되기를 열망합니다.
그것은 완전히 파이썬으로 작성되었습니다. 임의의 부동 소수점 연산을 위한 순수 Python 라이브러리인 mpmath에만 의존하기 때문에 사용이 간단합니다.
라이브러리로서 유용성을 염두에 두고 만들어졌습니다. 확장성은 API(응용 프로그램 인터페이스) 설계에서 매우 중요합니다.
결과적으로 Python 언어를 향상시키려는 시도를 하지 않습니다. 목적은 사용자가 다른 사용자와 함께 사용할 수 있도록 하는 것입니다. Python 라이브러리 대화형 환경에서든 더 큰 시스템의 프로그래밍된 구성 요소로든 워크플로에서.
라이브러리인 SymPy에는 내장 그래픽이 없습니다. 사용자 인터페이스 (GUI). 라이브러리는 다음과 같습니다.
- BSD 라이선스에 따라 라이선스가 부여되기 때문에 연설과 맥주 모두 무료입니다.
- Python 기반: Python으로 완전히 개발되었으며 Python을 언어로 사용합니다.
- 순수한 mpmath에만 의존하기 때문에 가볍습니다. 파이썬 라이브러리 임의의 부동 소수점 연산을 위해 사용하기 쉽게 만듭니다.
- 대화형 도구로 사용되는 것 외에도 다른 프로그램에 통합하고 사용자 정의 기능으로 수정할 수 있습니다.
왜 SymPy를 사용합니까?
컴퓨터 대수학 시스템인 Sage도 프로그래밍 언어로 Python을 사용합니다. 반면 Sage는 용량이 커서 기가바이트 이상의 다운로드가 필요합니다. 가볍다는 장점이 있습니다.
컴팩트할 뿐만 아니라 Python 이외의 종속성이 없으므로 거의 모든 곳에서 사용할 수 있습니다.
또한 Sage와 SymPy의 목표는 동일하지 않습니다. Sage는 모든 기능을 갖춘 수학 시스템이 되기를 열망하며 모든 주요 오픈 소스 수학 시스템을 하나로 결합합니다.
통합과 같은 Sage 기능을 사용하면 포함된 오픈 소스 패키지 중 하나를 호출합니다. 실제로는 Sage에 내장되어 있습니다. 반면 SymPy는 모든 기능이 자체적으로 구현된 독립형 시스템이 되기를 열망합니다.
라이브러리로 기능할 수 있는 능력은 중요한 기능입니다. 많은 컴퓨터 대수학 시스템은 대화형 환경에서 사용하도록 되어 있지만 자동화하거나 확장하기가 어렵습니다.
Python에서 대화식으로 사용하거나 자신의 Python 프로그램으로 가져올 수 있습니다. 또한 자신의 루틴으로 쉽게 확장할 수 있는 API가 있습니다.
심파이 설치
아래 명령을 사용하여 환경에 설치하기만 하면 됩니다.
SymPy 기호
지금 시작해 봅시다! 그것의 근본적인 목적은 상징이다. SymPy에서 다음과 같이 작성하여 기호 x를 생성할 수 있습니다.
위의 코드는 x 기호를 생성합니다. 그 안에 있는 기호는 알 수 없는 값을 나타내는 수학 기호를 에뮬레이트하기 위한 것입니다.
결과적으로 다음과 같은 계산이 표시됩니다.
위에 표시된 것처럼 기호 x는 알 수 없는 양과 유사하게 기능합니다. 많은 기호를 만들려면 다음과 같이 작성하십시오.
이 경우에는 동시에 두 개의 기호 y 및 z를 생성했습니다. 이제 다음 기호를 원하는 대로 더하고, 빼고, 곱하고, 나눌 수 있습니다.
심파이 기능
1. sympify() 함수
sympify() 메서드는 임의의 표현식을 SymPy 표현식으로 변환합니다. 정수와 같은 표준 Python 객체를 변환합니다.
문자열은 표현식과 정수 등으로 변환됩니다.
2. evalf() 함수
이 함수는 최대 100자리의 부동 소수점 정밀도로 지정된 숫자 표현식을 평가합니다.
이 함수는 기호에 대한 숫자 값이 있는 사전 개체를 subs 인수로 추가로 받습니다. 다음 문구를 고려하십시오.
부동 소수점 정확도는 기본적으로 15자리로 설정됩니다. 그러나 이것은 1에서 100 사이의 임의의 숫자로 변경할 수 있습니다.
다음 방정식은 20자리의 정밀도로 평가됩니다.
3. Lambdify() 함수
Lambdify는 표현식을 Python 함수로 변환하는 함수입니다. evalf() 메서드는 광범위한 값에서 표현식을 평가할 때 비효율적입니다.
Lambdify는 SymPy 이름을 제공된 숫자 라이브러리(일반적으로 NumPy)의 이름으로 변환한다는 점을 제외하고는 람다 함수와 유사하게 작동합니다.
기본적으로 Lambdify는 수학 표준 라이브러리 구현에 적용됩니다.
특징
라이브러리의 가장 중요한 몇 가지 기능이 여기에 나열되어 있습니다. 포함되지 않은 것이 더 많지만 확인할 수 있습니다. 여기에서 지금 확인해 보세요..
1. 핵심역량
- 기본 산술: +, -, *, / 및 ** 연산자가 지원됩니다(제곱).
- 다항식 전개
- 임의의 정밀도로 정수, 유리수 및 부동 소수점
- 삼각 함수, 쌍곡선 및 지수 함수, 근, 로그, 절대값, 구면 조화, 계승 및 감마 함수, 제타 함수, 다항식 및 특수 함수
- 비가환 기호
- 일치하는 패턴
2. 미적분학
- 통합: 이 방법은 확장된 Risch-Norman 휴리스틱을 사용합니다.
- 분화.
- 기능 제한
- 로랑 테일러의 시리즈
3. 다항식
- 그뢰브너 재단
- 부분 분수의 분해
- 나눗셈, gcd 결과는 기본 산술의 예입니다.
4. 조합론
- 순열
- 그레이 및 프루퍼 코드
- 조합, 파티션, 하위 집합
- 다면체, 루빅, 대칭 및 기타 순열 그룹
5. 이산 수학
- 요약
- 논리식
- 이항 계수
- 수 이론
어플리케이션
1. 건물 계산기
2. 컴퓨터 대수학 시스템
다른 컴퓨터 대수 시스템과 달리 Symbol() 함수를 사용하여 수동으로 기호 변수를 선언해야 합니다.
3. 미적분학
모든 종류의 계산을 기호적으로 수행할 수 있는 기호 계산 시스템의 능력은 주요 강점입니다.
명령문을 단순화하고, 상징적으로 도함수, 적분 및 극한을 계산하고, 방정식을 풀고, 행렬과 상호 작용하고, 더 많은 작업을 수행할 수 있습니다.
식욕을 돋우기 위해 여기 상징적인 힘을 맛보십시오.
SymPy로 다른 무엇을 할 수 있습니까?
추가 문제에 대해 심도 있게 다루기보다는 기술 향상에 도움이 되는 리소스 목록을 제공하겠습니다.
- 행렬 및 선형 대수: 행렬과 함께 작동하고 기본 선형 대수 연산을 수행할 수 있습니다. 언어는 NumPy의 구문과 유사합니다. 그러나 눈에 띄는 차이점이 있습니다. 시작하려면 조사 행렬 도서관에서.
- 식 : 트리 기반 구조인 표현식 트리를 활용하여 표현식을 추적합니다. 보다 표현 나무 그들의 내부 작동에 대해 더 알고 싶다면.
- 도함수와 적분: 미적분학 입문 수업에서 배우는 대부분의 것을 성취할 수 있습니다(생각 제외). 당신은 우리의 기능을보고 시작할 수 있습니다 분화 심파이에서.
- 넘파이와의 관계: NumPy와 SymPy는 모두 수학 관련 라이브러리입니다. 그럼에도 불구하고 그것들은 본질적으로 다릅니다! NumPy는 숫자로 작동하는 반면 기호 표현식에서는 작동합니다.
- 단순화: 표현식을 자동으로 단순화할 만큼 지능적입니다. 그러나 이것에 대해 더 세분화된 제어를 원하면 다음을 참조하십시오. 단순화.
결론
SymPy는 기호 수학을 위한 강력한 라이브러리입니다.
이를 사용하여 변수와 함수를 생성할 수 있을 뿐만 아니라 수학 문장을 기호로 확장 및 단순화하고 방정식, 부등식 및 방정식/부등식 시스템까지 해결할 수 있습니다.
스크립트의 텍스트와 터미널에서 직접 함수를 작성할 수 있습니다(또는 주피터 노트북) 수행된 계산에 대한 빠른 평가와 더 나은 그래픽 묘사를 얻을 수 있습니다.
SymPy를 더 탐색할 준비가 되셨습니까? 의견에 알려주십시오.
댓글을 남겨주세요.