2017-12-21 72 views
1

Python 3.6 및 SymPy 1.1.1을 설치했습니다. 옥타브에서 내가 그 후 명령Octave의 Sympy 오류 : sym의 'f'가 지원되지 않습니다.

pkg install -forge symbolic

를 실행 한 나는 패키지를로드하고 작동하는지 확인 syms x을 시도했다. 그것은 성공적으로 실행하고 나는

OctSymPy v2.6.0: this is free software without warranty, see source. 
Initializing communication with SymPy using a popen2() pipe. 
Some output from the Python subprocess (pid 10580) might appear next. 
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)] on win32 
Type "help", "copyright", "credits" or "license" for more information. 
OctSymPy: Communication established. SymPy v1.1.1. 
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)] 

있어하지만이 COMAND x=sym('x','f')를 사용할 때 오류 얻을 :

error: sym: the assumption "f" is not supported in your Sympy version. 

나는 최신 SymPy을 가지고 있기 때문에 이해가되지 않습니다. 누구든지 무엇을 해야할지 아이디어가 있습니까?

답변

0

SymPy 버전에는 'f'라는 유효한 가정이 없습니다. 버전에 대한 언급은 산만 함입니다. 당신은 혼란스러운 가정과 불평입니다. 가정은 다음과 같이 작동 :

x = sym('x', 'positive') 

유형 assumptions('possible')이 지원되는 모든 가정을 볼 수 있습니다. 이 같은

Ratflags 'R'과 'F'일 :

> x = sym(0.1, 'r') 
x = (sym) 1/10 

그들은 상징적 인 변수에 넣어하기위한 것입니다 숫자 입력에 적용

> x = sym(0.1, 'f') 
x = (sym) 

    3602879701896397 
    ───────────────── 
    36028797018963968 

대. 문제는 0.1 및 대부분의 십진수는 2 진법으로 정확하게 표현되지 않는다는 것입니다. 3602879701896397이 ratflag으로 발생/36028797018963968. 'F로

  1. 얼굴 값을 가지고 : 당신이 0.1를 전달할 때, 당신은 실제로이 입력을 처리하는 방법은 두 가지가 있습니다 3602879701896397/36028797018963968.

    을 전달하는 '.

  2. 복잡한 분수가 1/10에 얼마나 가깝기 때문에 실제로 1/10을 의미했다고 생각해보십시오. 이것은 래트 플래그 'r'에서 발생하며 기본 동작입니다.

은 (덧붙여, 옥타브 인터페이스없이 SymPy는 사용자의 의도를 추측 시도하지 않고, 기본적으로 첫번째 접근 방식을 취.)

Reference on sym.