首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >SageMath:求矩阵的虚部

SageMath:求矩阵的虚部
EN

Stack Overflow用户
提问于 2021-05-19 03:00:43
回答 2查看 251关注 0票数 1

假设您有一个包含复杂条目的矩阵,并且您希望提取每个条目的虚分量,并在Sage中创建一个新的矩阵。例如,假设

代码语言:javascript
运行
复制
M = [[1 + 2i, 5 + 3*i], [5, 3*i]]

我想要

代码语言:javascript
运行
复制
M_imag = [[2, 3], [0, 3]]

我知道z.imag()返回sage中复数z的虚部。另外,下面的代码适用于向量:[z.real() for z in v],但我不能让它对矩阵工作。

我认识然后,NumPy库提供了这样的方法。。但我不想把Sage矩阵改成numpy。最终,如果有一种方法可以将NumPy矩阵更改为Sage,那么这也是可行的。我更喜欢独立于其他库(包括NumPy )的解决方案。

如何才能在圣人身上实现这一点呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-05-19 16:30:56

请注意,这确实定义了列表列表,而不是矩阵:

代码语言:javascript
运行
复制
sage: M = [[1 + 2*i, 5 + 3*i], [5, 3*i]]

这样它就像列表的列表一样显示:

代码语言:javascript
运行
复制
sage: M
[[2*I + 1, 3*I + 5], [5, 3*I]]

它的“父”是列表的类别:

代码语言:javascript
运行
复制
sage: parent(M)
<class 'list'>

若要定义矩阵,请使用列表列表(或matrix数组)的matrix

代码语言:javascript
运行
复制
sage: M = matrix([[i, 3], [5, i]])

它以矩阵形式显示:

代码语言:javascript
运行
复制
sage: M
[I 3]
[5 I]

生活在矩阵的空间里:

代码语言:javascript
运行
复制
sage: parent(M)
Full MatrixSpace of 2 by 2 dense matrices
over Number Field in I with defining polynomial x^2 + 1 with I = 1*I

按以下方式更改整行或单个条目:

代码语言:javascript
运行
复制
sage: M[0, :] = matrix([[2*I + 1, 3*I + 5]])
sage: M[1, 1] = 3*I

并看到结果:

代码语言:javascript
运行
复制
sage: M
[2*I + 1 3*I + 5]
[      5     3*I]

获取矩阵的LaTeX代码:

代码语言:javascript
运行
复制
sage: latex(M)
sage: latex(M)
\left(\begin{array}{rr}
2 i + 1 & 3 i + 5 \\
5 & 3 i
\end{array}\right)

请参阅矩阵,很好地排版:

代码语言:javascript
运行
复制
sage: view(M)

计算跟踪和行列式:

代码语言:javascript
运行
复制
sage: M.trace()
5*I + 1
sage: M.det()
-12*I - 31

将地图应用于每个条目,例如realimag,以获得真实部分或想象部分:

代码语言:javascript
运行
复制
sage: A = M.apply_map(real)
sage: B = M.apply_map(imag)

并检查结果:

代码语言:javascript
运行
复制
sage: A, B, A + i*B, M
(
[1 5]  [2 3]  [2*I + 1 3*I + 5]  [2*I + 1 3*I + 5]
[5 0], [0 3], [      5     3*I], [      5     3*I]
)

进一步阅读

  • 罗伯特·A·比泽。线性代数的第一门课。
票数 1
EN

Stack Overflow用户

发布于 2021-05-19 08:58:33

我认为这将解决您的问题,[[z.imag() for z in v] for v in M]。您遍历M中的行,然后遍历每一行中的元素并计算其虚部。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67596326

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档