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

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

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

  • 问题来源

    在实际应用的时候,发现返回值都是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;
  • 问题跟踪

    我把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的 源代码,发现引起这个问题的原因可能是精度问题,测试之后果不其然。

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

  •  结论

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

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

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长

相关推荐

  • FileZilla出现Failed to convert command to 8 bit charset

    FileZilla出现Failed to convert command to 8 bit charset

    2021年10月7日
  • 京东活动+自动运行脚本+签到2021.05.26更新

    京东活动+自动运行脚本+签到2021.05.26更新先下载Node.js运行环境https://nodejs.org/en下载14.15.4版本。WIN7下载12.20的版本https://nodejs.org/dist/latest-v12.x/node-v12.20.1-x64.msi。只需要一路安装就可以。检测是否安装成功:点击开始-运行-cmd(win+R),打开dos,输入“node–version”检查Node.js版本:只要有显示就说明没问题了。每天大概300-400个京豆,有时候现金红包会有6元左右。下载脚本包:https://..

    2022年7月23日
  • 同步FIFO和异步FIFO总结[通俗易懂]

    同步FIFO和异步FIFO总结[通俗易懂]文章目录1.FIFO简介2.使用场景3.分类4.FIFO的常见参数5.FIFO设计5.1空满标志生成5.2异步FIFO的设计还要注意跨时钟域问题5.3gray码如何判断空满`6.同步FIFO实现`7.异步FIFO实现8.对FIFO进行约束9.关于异步FIFO最小深度的计算9.1写时钟快于读时钟,写和读的过程中没有空闲周期9.2写时钟频率大于读时钟频率,但在读写的过程中存在空闲周期9.3写时钟慢于读时钟,且读写过程中没有空闲周期9.4写时钟频率小于读时钟频率,但读写过程中存在空

    2022年8月13日
  • pt100测温电路图(ad590典型的测温电路)

    PT100精密测温电路一、需求分析根据题目要求为:测温范围为0-100℃、测温精度要求为±1℃。由于铂电阻具有精度高、性能可靠、稳定性好的特点,且铂电阻的电阻相对变化率与温度的关系曲线线性度最好,故选择铂电阻作为敏感元件。而在国标中,铂电阻有几种不同的标准,如PT100、PT1000。分别对应着0摄氏度下铂电阻的阻值为100R和1000R,由于需要考虑铂电阻的自发热问题,所以尽量选择阻值小的铂电阻,故选择PT100为最终型号。二、电路设计2.1热电阻接法热电阻测温电路有多种接法,其中三线制会导致

    2022年4月9日
  • 特征生成

    特征生成

    2022年1月23日
  • cshtml标记html5,cshtml常用标签

    cshtml标记html5,cshtml常用标签@RenderSection:在布局页中,将呈现指定部分的内容并指定该部分是否为必需。用法:@RenderSection(“PageSpecificStyleSheetIncludes”,required:false)@Html.Partial:在布局页中,把一个个View给镶入进来并回传的一个Object(MvcHtmlString)用法:@Html.Partial(“_Top”)@H…

    2022年6月29日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

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