【问题标题】:How to use GSL library in C for diagonalization of a Hermitian Matrix?如何在 C 中使用 GSL 库对 Hermitian 矩阵进行对角化?
【发布时间】:2014-11-04 05:30:15
【问题描述】:

我有 C 编程语言的基本知识。我知道循环结构、数组和控制语句。突然间,我需要知道如何使用 C 语言 中的 GSL 库 对 Hermitian 矩阵进行对角化。 GSL 的安装不是问题。但我想知道如何将它用于这个特定目的。这些天我正在阅读 GSL 手册,但如果能提供简明准确的答案,将不胜感激?

【问题讨论】:

  • 在哪个操作系统上,使用哪个编译器?你读过文档吗,它有一个Using the GSL library 章节!

标签: c gsl


【解决方案1】:

首先查看15.2 Complex Hermitian Matrices 部分。

要计算特征值,您首先要查看此处:

gsl_eigen_herm_workspace * gsl_eigen_herm_alloc (const size_t n)

这个函数分配一个工作空间来计算特征值 n×n 复厄米特矩阵。工作空间的大小为 O(3n)。

接着看:

int gsl_eigen_herm (gsl_matrix_complex * A, gsl_vector * eval, gsl_eigen_herm_workspace * w)

此函数计算复厄米矩阵的特征值 A. 必须在 w 中提供适当大小的额外工作空间。 A 的对角线和下三角形部分在 计算,但没有引用严格的上三角部分。 假设对角线的虚部为零并且不 参考。特征值存储在向量 eval 中并且是 无序。

特征值特征向量可以使用:

gsl_eigen_hermv_workspace * gsl_eigen_hermv_alloc (const size_t n)

int gsl_eigen_hermv (gsl_matrix_complex * A, gsl_vector * eval, gsl_matrix_complex * evec, gsl_eigen_hermv_workspace * w)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-07-01
    • 2018-03-02
    • 1970-01-01
    • 1970-01-01
    • 2013-10-11
    • 2014-09-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多