24小时热门版块排行榜    

查看: 479  |  回复: 3
当前主题已经存档。

wanggongming

铁虫 (小有名气)

[交流] 【求助】如何求解高精度double型矩阵的秩

求矩阵秩常用的方法是全选主元高斯消去法,我在徐士良的《C常用算法程序集(第二版)》中看到过C语言源代码,但是这个代码无法求解Double型高精度
矩阵(即每个元素的精度都在小数点6位之后)的秩!
有一个一个矩阵,其第一行和第二行元素完全相同(如下所示,由于两行完全相同,只列出第一行),从原理上说秩应该是1。但是求出的秩却是2。
0.288488
-0.010170
-0.007254
0.033046
-0.111335
0.308060
-0.424541
0.317609
-0.159026
0.042474
0.005092
0.000000
.005092
-0.042474
-0.159026
-0.317609
-0.424541
-0.308060
-0.111335
-0.033046
-0.007254
0.010170
0.288488
究其原因,应该是Double型矩阵进行高斯消元时,不好消成某行全为0的形式,所以导致求秩错误!
对于这种情况下的矩阵,不知谁有办法求出它的秩,望高手给予帮助!

[ Last edited by wenzhenzhong on 2008-12-4 at 23:38 ]
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wanggongming

铁虫 (小有名气)

★ ★
wenzhenzhong(金币+2,VIP+0):辛苦了,~~
下面是徐士良书中矩阵求秩的代码,它可以求出某些Double型矩阵的秩,但是对于精度特别高的Double型矩阵无能为力!
#include "math.h"
long brank(double ** a, long m, long n)
{
        int i,j,k,nn,is,js,l,ll,u,v;
        double q,d;
        nn=m;
        if(m>=n)
                nn=n;
        k=0;
        for(l=0;l<=nn-1;l++)
        {
                q=0.0;
                for(i=l;i<=m-1;i++)
                        for(j=l;j<=n-1;j++)
                        {
                                d=fabs(a[j]);
                                if(d>q)
                                {
                                        q=d;
                                        is=i;
                                        js=j;
                                }
                        }
                if(q+1.0==1.0)
                        return(k);
                k=k+1;
                if(is!=l)
                {
                        for(j=l;j<=n-1;j++)
                    {
                                d=a[l][j];
                                a[l][j]=a[is][j];
                                a[is][j]=d;
                        }
                }
                if(js!=l)
                {
                        for(i=l;i<=m-1;i++)
                    {
                                d=a[js];
                                a[js]=a[l];
                                a[l]=d;
                        }
                }
                for(i=l+1; i<=n-1; i++)
                {
                        d=a[l]/a[l][l];
                        for(j=l+1; j<=n-1; j++)
                        {
                                a[j]=a[j]-d*a[l][j];
                        }
                }
        }
        return(k);
}
2楼2008-12-04 20:38:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yalefield

金虫 (文坛精英)

老汉一枚


wenzhenzhong(金币+1,VIP+0):欢迎常来理工版~~
把全部阵元放大1百万倍
3楼2008-12-05 10:04:51
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wanggongming

铁虫 (小有名气)

100万倍,赫赫,用不着那么大吧!
4楼2008-12-11 23:04:49
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wanggongming 的主题更新
普通表情 高级回复 (可上传附件)
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 建议基金发布提前给出明确的时间点 +10 kulium 2026-08-21 13/650 2026-08-21 21:58 by alongwaytogo
[基金申请] 2026国自然函评费到账 +7 羊腰板 2026-08-21 7/350 2026-08-21 21:28 by iwuli
[基金申请] 科研孤儿太难了 +17 我4大白菜 2026-08-20 18/900 2026-08-21 20:57 by zhangev
[基金申请] 看来今天不会放榜了? +8 chengyan1220 2026-08-21 11/550 2026-08-21 17:52 by dcqxinyang
[基金申请] 时间戳又变了 +13 wuchongjun 2026-08-20 19/950 2026-08-21 17:21 by 紫杉醇
[基金申请] 让我中一个面上吧! +11 大萍1987 2026-08-20 13/650 2026-08-21 14:48 by 20120902066
[基金申请] 人气不行了 +7 fansofjerry 2026-08-21 7/350 2026-08-21 14:13 by Vivilian
[基金申请] 感觉是下周放榜了 +7 angus9576 2026-08-17 12/600 2026-08-21 13:38 by weiyin
[基金申请] 什么时候开奖? +7 CrisMessi 2026-08-18 7/350 2026-08-21 12:15 by weiyin
[基金申请] 时间戳又变了8-15 +15 archvillain 2026-08-15 27/1350 2026-08-21 11:32 by tim76
[基金申请] 应该是下周三26日公布了吧? +4 哈哈蛤? 2026-08-21 4/200 2026-08-21 10:58 by Vivilian
[论文投稿] 投稿咨询 +5 wwm09 2026-08-17 7/350 2026-08-21 10:11 by 期刊论文帮手
[基金申请] 基金啊基金 +4 longfie172 2026-08-20 4/200 2026-08-21 08:58 by mark mao
[基金申请] 时间戳今天,20号变了 +4 archvillain 2026-08-20 4/200 2026-08-21 08:10 by gatelove
[基金申请] 估计是周四 +3 archvillain 2026-08-18 3/150 2026-08-21 01:48 by jnhyjjm
[基金申请] 今天放榜吗? +14 布布和一二 2026-08-19 15/750 2026-08-19 18:07 by gltch
[基金申请] 朋友圈看到的 +6 wangzilk 2026-08-18 8/400 2026-08-19 10:55 by Haru815
[基金申请] 明天放榜? +5 Shxjjxjkx 2026-08-18 5/250 2026-08-18 18:14 by -大大大大大-
[基金申请] 今天维护系统维护 祝所有人 高中 +8 gjjjzhong 2026-08-18 9/450 2026-08-18 13:01 by 家与远方
[基金申请] 93BebMhtakh前后11位开头都是大写 +4 且听虎啸 2026-08-17 5/250 2026-08-18 00:49 by 蔡棒棒菂
信息提示
请填处理意见