非满秩矩阵也能求逆矩阵吗_广义逆矩阵的性质

非满秩矩阵也能求逆矩阵吗_广义逆矩阵的性质今天遇到一个很奇怪的问题:一个方阵,逆矩阵存在,但不是满秩。问题来源  在实际应用的时候,发现返回值都是0,于是跟踪到这里,发现了这个问题:JtJ不是满秩,因此JtJN保持初始化的零值。matJtJN=zeros(N,N);matResult=zeros(N,1);if(N==rank(JtJ)){JtJN=inv(JtJ);}for…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

今天遇到一个很奇怪的问题:一个方阵,逆矩阵存在,但不是满秩。

  • 问题来源

    在实际应用的时候,发现返回值都是0,于是跟踪到这里,发现了这个问题:JtJ不是满秩,因此JtJN保持初始化的零值。

mat JtJN = zeros(N, N);
mat Result = zeros(N, 1);
if (N == rank(JtJ))
{
    JtJN = inv(JtJ);
}
for (int i = 0; i < N; i++)
{
    Result[i] = 1.96 * sqrt(re * abs(JtJN(i, i)) / M) / (p0[i] + EPS);
}
return Result;

Jetbrains全家桶1年46,售后保障稳定

  • 问题跟踪

    我把JtJ这个数据保存成txt,然后在Matlab里load进去。

1.42564385120145	46664.0071835617	-361.723628266118	1.43453776778475	2.27890158958207	1491.23699249997	2.66016443927362
46664.0071835617	2561658858.23584	-30028903.1298037	47411.4041209533	107097.080643255	129526675.413329	143227.334019439
-361.723628266118	-30028903.1298037	464526.466675988	-373.437398450597	-1274.63678807808	-2315792.08994344	-1969.46141027209
1.43453776778475	47411.4041209533	-373.437398450597	1.44372953400922	2.31104869171119	1551.42174553270	2.71062044898402
2.27890158958207	107097.080643255	-1274.63678807808	2.31104869171119	5.20067695242223	7813.59509020671	7.98532576281474
1491.23699249997	129526675.413329	-2315792.08994344	1551.42174553270	7813.59509020671	25339933.2510429	20655.0780322129
2.66016443927362	143227.334019439	-1969.46141027209	2.71062044898402	7.98532576281474	20655.0780322129	50.0000010000000

    请看以下结果:

非满秩矩阵也能求逆矩阵吗_广义逆矩阵的性质

    于是,我跟踪进rank的 源代码,发现引起这个问题的原因可能是精度问题,测试之后果不其然。

非满秩矩阵也能求逆矩阵吗_广义逆矩阵的性质非满秩矩阵也能求逆矩阵吗_广义逆矩阵的性质

  •  结论

    判断矩阵的逆矩阵是否存在时,一定要特别小心用满秩作为条件来判断,很可能会由于精度原因导致不可预估的结果。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/210430.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 黑盒测试用例设计方法详解

    黑盒测试用例设计方法详解黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景图法等。(一)等价类划分法定义:等价类划分法是把所有可能输入的数据,即程序的输入域划分策划国内若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。方法是一种重要的、常用的黑盒测试用例设计方法。等价类是指某个输入域的子集合。在该子集合中,各个输入数据…

  • 文件io之——open/close

    文件io之——open/close

  • 数据结构与算法 队列_数据结构中的排序算法

    数据结构与算法 队列_数据结构中的排序算法一、什么是队列队列是一种特殊的线性表。队列元素的进出遵循“先进先出”原则:即只允许在前端(front)也就是队头进行删除操作,而只能在后端(rear)也就是队尾进行插入操作。如图所示:队列的最

  • Laravel-admin之Driver [] is not supported

    Laravel-admin之Driver [] is not supported

    2021年10月30日
  • 1073. 树的中心(树形dp)[通俗易懂]

    1073. 树的中心(树形dp)[通俗易懂]给定一棵树,树中包含 n 个结点(编号1~n)和 n−1 条无向边,每条边都有一个权值。请你在树中找到一个点,使得该点到树中其他结点的最远距离最近。输入格式第一行包含整数 n。接下来 n−1 行,每行包含三个整数 ai,bi,ci,表示点 ai 和 bi 之间存在一条权值为 ci 的边。输出格式输出一个整数,表示所求点到树中其他结点的最远距离。数据范围1≤n≤10000,1≤ai,bi≤n,1≤ci≤105 输入样例: 5 2 1 1 3 2 1 4 3 1 5 1

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号