2016-04-11 16 views
2

Semptomu kullanarak iki terimin LCM'sini bulmaya çalışıyorum. Ben kullanıyorum kodudur: incelemeyle,sympy.lcm terimleri doğru genişletmiyor

1.0*s**2 + 0.0204*s + 7.99999999999992e-6 

Ancak döner

import sympy 
s=sympy.Symbol("s") 
A=(s+0.0004)*(s+0.02) 
B=(s+0.02) 
sympy.lcm(A,B) 

sm ı sympy.lcm kesin hesaplamak için nasıl alabilirim

1.0*s**2 + 0.0204*s + 8.0e-6 

olmalıdır çözüm?

Teşekkür ederiz.

cevap

3

Buradaki problem şudur: 0.02 ve 0.004, şamandıralar gibi sonlu kesin bir temsilciliğe sahip değildir, bu yüzden başlamadan önce bile yuvarlama ile ilgili sorunlarınız vardır.

s**2 + 3*s/125 + 1/12500 
: Bu şimdi kesin bir sonuç verir

A = (s + sympy.Rational(4, 1000))*(s + sympy.Rational(2, 100)) 
B = (s + sympy.Rational(2, 100)) 
sympy.lcm(A, B).expand() 

: Sen tam sympy.Rational s kullanarak bu sayıları tutabilir

İlgili konular