Python 如何在symphy中对矩阵元素进行舍入?
如我们所知Python 如何在symphy中对矩阵元素进行舍入?,python,rounding,sympy,Python,Rounding,Sympy,如我们所知 from sympy import * x = sin(pi/4) y = sin(pi/5) A = Matrix([x, y]) print(x) print(A.evalf()) 显示 sqrt(2)/2 Matrix([[0.707106781186548], [0.587785252292473]]) 0.707 0.588 所以 显示 sqrt(2)/2 Matrix([[0.707106781186548], [0.587785252292473]]) 0
from sympy import *
x = sin(pi/4)
y = sin(pi/5)
A = Matrix([x, y])
print(x)
print(A.evalf())
显示
sqrt(2)/2
Matrix([[0.707106781186548], [0.587785252292473]])
0.707
0.588
所以
显示
sqrt(2)/2
Matrix([[0.707106781186548], [0.587785252292473]])
0.707
0.588
但是,我们怎样才能以简洁的方式将矩阵中的所有元素四舍五入,从而
print(roundMatrix(A, 3))
can显示器
Matrix([[0.707], [0.588]])
为什么不将方法evalf与参数一起使用,如
evalf(3)
输出
sqrt(2)/2
Matrix([[0.707], [0.588]])
可能您误解了
evalf
。例如,a=Rational(100,2)+0.00001
那么你怎么看a.evalf(3)
?我要的是50000
?不,它是50.0
evalf
在这种情况下工作正常。调用a.evalf(3)返回3位有效数字而不是点后3位。要在点写入a.evalf(5)
后获得3个数字,您将获得50.000
。