python - Numpy 矩阵行列式没有按预期工作?
问题描述
我有一个问题,要求我证明矩阵 B 的行列式等于 0。矩阵 B 定义为:
import numpy as np
from numpy import linalg as m
B = np.array([[-1-3.j,-8-10.j,0-3.j],
[-7-3.j,-4-9.j,-3-2.j],
[11-3.j,-16-12.j,6-5.j]
])
print(B)
[[ -1. -3.j -8.-10.j 0. -3.j]
[ -7. -3.j -4. -9.j -3. -2.j]
[ 11. -3.j -16.-12.j 6. -5.j]]
行列式很简单,使用numpy
m.linalg.det(B)
(-8.126832540256171e-14-1.5987211554602298e-14j)
这显然不等于零。
我使用https://www.symbolab.com/仔细检查了我的答案,行列式绝对为零。
我觉得我在做一些荒谬可笑的事情,但无法完全弄清楚是什么。有什么帮助吗?
解决方案
你看到的是非常小的数字,几乎等于零。由于数值不准确,它们并不完全等于零。
这就是为什么我们通常不会测试它们是否相等,而是测试它们是否接近
np.allclose(np.linalg.det(B), 0). # True
推荐阅读
- video - 如何在 whatsapp 上分享链接时更新 youtube 视频图像和描述?
- uwp - 无法保存在 XML 文件中
- reactjs - 为什么 props.action 不是我的 handleChange 函数中的函数?
- python - server = ThreadingHTTPServer((host, port), Handler) TypeError: __init__() 缺少 1 个必需的位置参数:'server'
- autodesk-forge - 在伪造查看器中找不到分组元素
- liquid - 删除 Liquid 模板中字符串的第一行
- c# - 使用 Klarna 创建新订单的错误请求
- java - 当我的当前位置在谷歌地图中移动时更新距离的任何代码
- android - 如果我在 firebase 身份验证中有很多冗余匿名用户,可以吗?
- javascript - 无法将事件处理程序附加到 ClassicEditor