四重精度特征值,特征向量和矩阵对数 [英] Quadruple Precision Eigenvalues, Eigenvectors and Matrix Logarithms

查看:199
本文介绍了四重精度特征值,特征向量和矩阵对数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试以四倍精度对角矩阵,并取它们的对数.有没有一种语言可以使用内置函数来完成此任务?

I am attempting to diagonalize matrices in quadruple precision, and to take their logarithms. Is there a language in which I can accomplish this using built-in functions?

请注意,标记中的语言/软件包不足,存在以下缺陷:

Note, the languages/packages in the tags are insufficient, suffering from the following deficiencies:

Matlab:不支持四精度.

Matlab: Does not support quad precision.

Python/NumPy/SciPy:dtype float128的矩阵在float64中产生特征向量.

Python/NumPy/SciPy: Matrices with dtype float128 yield eigenvectors in float64.

鼠尾草:通过GP/PARI的接口会产生错误的错误消息.

Sage: Interface through GP/PARI yields cryptic error messages.

有人对角化和矩阵对数执行四进制精度吗?如果是,怎么做?

Has anyone performed diagonalization and matrix logarithms to quad precision, and if so, how?

推荐答案

@Matlab:不支持四精度.

用于MATLAB的多精度计算工具箱提供了任意精度的线性代数计算例程.

Multiprecision Computing Toolbox for MATLAB provides routines for linear algebra computations in arbitrary precision.

它涵盖了许多其他领域-基本数学,数值方法(积分,求和,优化),特殊功能和基本数据分析.

It covers many other fields - basic math, numerical methods (integration, ode, optimization), special functions and basic data analysis.

此外,它允许以任意精度运行现有Matlab程序,而只需对源代码进行最少(或没有任何)修改.

Besides it allows running existing Matlab's programs in arbitrary precision with only minimal (or without any) modifications to source code.

更新(2013年3月27日):现在,工具箱还包含快速四倍精度模式,该速度比替代方法快了近100倍.请参阅 MATLAB中的快速四倍精度计算进行比较和详细信息.

Update (March 27, 2013): Now toolbox also includes fast quadruple precision mode, which is nearly 100 times faster compared to alternatives. See Fast Quadruple Precision Computations in MATLAB for comparisons and details.

对替代方案的评论:

符号数学工具箱 (MATLAB)专门用于符号计算.因此,它缺乏任意精度数值计算所需的许多基本功能.

Symbolic Math Toolbox (MATLAB) from Mathworks targeted to symbolic computations. As such it lacks many essential features needed for arbitrary precision numerical computing.

例如,甚至不可能比较两个vpa()数字,因为它们是符号"类型的(根据设计).这个唯一的限制从数值分析中排除了99%的算法.

For example, it is not even possible to compare two vpa() numbers since they are of "symbolic" type (by design). This only limitation rules out 99% of algorithms from numerical analysis.

符号数学工具箱中缺少的其他基本线性代数函数是:norm, cond, max, min, sort, lu, qr, chol, schur.

Other basic linear algebra functions missing in Symbolic Math Toolbox are: norm, cond, max, min, sort, lu, qr, chol, schur.

免费的多精度工具箱(MATLAB).

Free Multiple Precision Toolbox (MATLAB).

除了速度极慢(它在每个算术运算中执行操作数的数字到字符串转换:+, -, ...)并且缺少基本功能(eig, det, cond, \, ...)之外,它在所拥有的函数中也会给出错误的结果.

Besides being extremely slow (it performs number-to-string conversion of operands on every arithmetic operation: +, -, ...) and lacking essential functionality (eig, det, cond, \, ...), it gives wrong results in functions it has.

例如svd函数提供的错误结果使我的研究在某些时候变得毫无意义,并且发现错误也很痛苦.

E.g. incorrect results delivered by svd function made my research senseless at some point and error was painful to find.

mpmath (Python)

主要针对特殊功能的计算(尤其是超几何系列).并且不支持或多或少的高级数值算法.对矩阵的支持很少.尽管您似乎在寻找最新版本的矩阵对数.

Mainly targeted to special functions computing (hypergeometric family in particular). And has no support for more or less advanced numerical algorithms. Has very little support for matrices. Although seems to have matrix logarithm you are looking for in the latest version.

实际上,所有这些缺点促使我开发了自己的MATLAB扩展,以使其能够进行任意精度计算(在一开始就提到-适用于MATLAB的多精度计算工具箱).我只需要我的工作.

Actually all these drawbacks pushed me to develop my own extension for MATLAB to enable it with arbitrary precision computing (referred at the beginning - Multiprecision Computing Toolbox for MATLAB). I just need it for my work.

它正在积极开发中(但是已经用其他替代方法解决了所有列出的问题)-感谢您提供任何反馈.

It is under active development (but already fixes all listed problems with other alternatives) - I would appreciate any feedback.

这篇关于四重精度特征值,特征向量和矩阵对数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆