- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
假设我需要非常高的计算精度,或者我正在处理的程序对数值错误非常敏感。在 Matlab 中,我可以这样做:
d = 30;
digits(d);
t = vpa(1);
H = vpa(zeros(2, 2));
H(2, 1) = t;
H(1, 2) = t;
eigenvalues = vpa(eig(H));
当然上面的程序很简单,但是对于更大的矩阵和更多的变量情况也是一样的。
如何在 python 中重写它,我在 python 包中找不到任何对应的东西。
最佳答案
SymPy 以符号方式进行计算,您可以请求以任意精度进行评估。
>>> A
Matrix([
[ 1, 1, 1, 1, 0],
[-1, 1, 1, 1, 1],
[ 0, -1, 1, 1, 1],
[ 0, 0, -1, 1, 1],
[ 0, 0, 0, -1, 1]])
>>> evals = solve(A.charpoly().as_expr())
>>> evals[0].n(30)
1.44482461851856062804340583653
在这种情况下,5 阶多项式的形式无法被 eigenvals
例程识别,因此 A.eigenvals() 将产生错误。但是,如果您的矩阵不存在此类困难,则可以更直接地生成特征值:
>>> A = Matrix([[75, 74], [73, 4]])
>>> _.eigenvals()
{79/2 - 9*sqrt(329)/2: 1, 79/2 + 9*sqrt(329)/2: 1}
>>> list(_.keys())[0]
79/2 - 9*sqrt(329)/2
>>> _.n(30)
-42.1226071624767447920482826638
关于python - python 在 matlab 中是否有对应的 digits() 和 vpa() 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58799103/
尝试使用 vpa() 为指数中的有理表达式计算变量点数: syms x; ans1 = x^(12345/67890) ans2 = vpa(x^(12345/67890),3) ans2_5 = v
Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。 想改善这个问题吗?更新问题,以便将其作为on-topic
为了项目的需要,我在 GKE 上创建了 2 个 Kubernetes 集群。 集群 1 : 一个 Pod 中有 10 个容器 集群 2 :10 个不同 Pod 中的 10 个容器 所有的容器都连接起来
如果我们有以下代码: base = vpa(1); height = vpa(2.2); mod(2*base + height + height, 2 * (base + height)) 这将产生
我已将集群上的 VPA 启用为只读模式并尝试收集 VPA 推荐数据。但是我找不到特定于 Vertical Pod Autoscaling 的好的文档或任何 API 详细信息。我为 Horizont
假设我需要非常高的计算精度,或者我正在处理的程序对数值错误非常敏感。在 Matlab 中,我可以这样做: d = 30; digits(d); t = vpa(1); H = vpa(zeros(2,
我是一名优秀的程序员,十分优秀!