SymPy - ตัวเลข

โมดูลหลักในแพ็คเกจ SymPy ประกอบด้วยคลาส Number ซึ่งแสดงถึงเลขอะตอม คลาสนี้มีคลาสย่อยสองคลาสคือคลาส Float และ Rational คลาสเหตุผลถูกขยายเพิ่มเติมโดยคลาสจำนวนเต็ม

ชั้นลอยแสดงถึงจำนวนจุดลอยตัวของความแม่นยำโดยพลการ

>>> from sympy import Float 
>>> Float(6.32)

ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -

6.32

SymPy สามารถแปลงจำนวนเต็มหรือสตริงให้ลอยได้

>>> Float(10)

10.0

Float('1.33E5')# scientific notation

133000.0

ในขณะที่แปลงเป็น float คุณสามารถระบุจำนวนหลักเพื่อความแม่นยำได้ตามที่ระบุด้านล่าง -

>>> Float(1.33333,2)

ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -

1.3

การแทนค่าจำนวน (p / q) จะแสดงเป็นอ็อบเจ็กต์ของคลาส Rational โดย q เป็นจำนวนที่ไม่ใช่ศูนย์

>>> Rational(3/4)

ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -

$\frac{3}{4}$

ถ้าตัวเลขทศนิยมถูกส่งผ่านไปยังตัวสร้าง Rational () จะส่งคืนค่าพื้นฐานของการแทนค่าฐานสอง

>>> Rational(0.2)

ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -

$\frac{3602879701896397}{18014398509481984}$

สำหรับการแทนค่าที่ง่ายขึ้นให้ระบุข้อ จำกัด ตัวส่วน

>>> Rational(0.2).limit_denominator(100)

ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -

$\frac{1}{5}$

เมื่อสตริงถูกส่งไปยังตัวสร้าง Rational () จำนวนเหตุผลของความแม่นยำโดยพลการจะถูกส่งกลับ

>>> Rational("3.65")

ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -

$\frac{73}{20}$

นอกจากนี้ยังสามารถรับวัตถุที่มีเหตุผลได้หากมีการส่งผ่านอาร์กิวเมนต์ตัวเลขสองตัว ส่วนเลขและตัวส่วนมีให้เป็นคุณสมบัติ

>>> a=Rational(3,5) 
>>> print (a) 
>>> print ("numerator:{}, denominator:{}".format(a.p, a.q))

ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -

3/5

numerator:3, denominator:5

>>> a

ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -

$\frac{3}{5}$

คลาสจำนวนเต็มใน SymPy แทนจำนวนเต็มขนาดใดก็ได้ ตัวสร้างสามารถรับ Float หรือ Rational number ได้ แต่ส่วนที่เป็นเศษส่วนจะถูกทิ้งไป

>>> Integer(10)

ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -

10

>>> Integer(3.4)

ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -

3

>>> Integer(2/7)

ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -

0

SymPy มีไฟล์ RealNumberคลาสที่ทำหน้าที่เป็นนามแฝงสำหรับ Float SymPy ยังกำหนด Zero และ One เป็นคลาสเดี่ยวที่สามารถเข้าถึงได้ด้วย S.Zero และ S.One ตามลำดับดังที่แสดงด้านล่าง -

>>> S.Zero

ผลลัพธ์มีดังนี้ -

0

>>> S.One

ผลลัพธ์มีดังนี้ -

1

อ็อบเจ็กต์จำนวน Singleton ที่กำหนดไว้ล่วงหน้าอื่น ๆ ได้แก่ Half, NaN, Infinity และ ImaginaryUnit

>>> from sympy import S 
>>> print (S.Half)

ผลลัพธ์มีดังนี้ -

½

>>> print (S.NaN)

ผลลัพธ์มีดังนี้ -

nan

Infinity สามารถใช้ได้เป็นวัตถุสัญลักษณ์ oo หรือ S. Infinity

>>> from sympy import oo 
>>> oo

ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -

$\infty$

>>> S.Infinity

ผลลัพธ์สำหรับข้อมูลโค้ดด้านบนมีดังนี้ -

$\infty$

หมายเลข ImaginaryUnit สามารถนำเข้าเป็นสัญลักษณ์ I หรือเข้าถึงเป็น S.ImaginaryUnit และแทนค่ารากที่สองของ -1

>>> from sympy import I 
>>> I

เมื่อคุณเรียกใช้ข้อมูลโค้ดด้านบนคุณจะได้รับผลลัพธ์ต่อไปนี้ -

i

>>> S.ImaginaryUnit

ผลลัพธ์ของตัวอย่างข้อมูลข้างต้นมีดังนี้ -

i

>>> from sympy import sqrt 
>>> i=sqrt(-1) 
>>> i*i

เมื่อคุณเรียกใช้ข้อมูลโค้ดด้านบนคุณจะได้รับผลลัพธ์ต่อไปนี้ -

-1