家有小丫头 发表于 2006-7-4 21:56

"求线性方程组的通解"要用什么函数做?

"求线性方程组的通解"要用什么函数做.

请这里的高手门能帮帮忙给个答案

[ 本帖最后由 xinyuxf 于 2006-12-26 11:35 编辑 ]

家有小丫头 发表于 2006-7-4 21:57

对了,是要求用 C语言编程序~~~谢谢各位大哥哥了

toes 发表于 2006-7-5 09:46

只听说过“微分方程”的通解特解,“线性方程组”的通解,不懂啊。

hao1982 发表于 2006-7-5 09:59

线性方程

线性方程组AX=B的通解就是
先对应AX=0齐次解X0,以及AX=B的解X1
通解=X0+K*X1
K是任意常数

家有小丫头 发表于 2006-7-5 12:08

恩恩,可是就是不会用C语言来编.好难~~~~都不晓得怎么下手...

有厉害的高手帮帮忙~~~~谢谢了55555

redstar 发表于 2006-7-5 13:00

原帖由 hao1982 于 2006-7-5 09:59 发表
线性方程组AX=B的通解就是
先对应AX=0齐次解X0,以及AX=B的解X1
通解=X0+K*X1
K是任意常数

你方法说对了,但是AX=B的通解说错了。 通解 = K* X0 +X1,K是任意常数。呵呵

hao1982 发表于 2006-7-5 17:55

原帖由 redstar 于 2006-7-5 13:00 发表


你方法说对了,但是AX=B的通解说错了。 通解 = K* X0 +X1,K是任意常数。呵呵
哎,又疏忽了!惭愧

家有小丫头 发表于 2006-7-5 21:47

呵呵,不过要用C语言编出来,好象真的很难,弄了一天555都没出来

hao1982 发表于 2006-7-5 22:14

按照线性代数的方法应该可以编出的,不过要看你的熟练程度了.我没用过C编程,所以爱莫能助了
不过象这种程序应该可以去程序书上找到的.或者有流程图,可以照着写.

hunter_009 发表于 2006-7-5 23:34

你如果不想自己编的话,可以到网上找,或者到图书馆去找本书,有关这方面的书是挺多的,很容易找的。

家有小丫头 发表于 2006-7-6 08:27

诺大一个互联网都找不到...哎~~~绝望了~~555

toes 发表于 2006-7-6 09:24

不就是解线性方程组吗?很多C程序集中有,徐士良的C语言常用算法中就有。

flybaly 发表于 2006-7-6 13:25

原帖由 家有小丫头 于 2006-7-4 21:56 发表
丫头碰到麻烦老师了,出个鬼题目.请大家帮帮忙

"求线性方程组的通解"要用什么函数做.

请这里的高手门能帮帮忙给个答案,很急很急.

丫头在这里先谢过,谢谢了Sample Text
这是用fortran编的子程序,稍改一下,到c就行了
应该可以看懂吧~~顺便说一下,这是用的高斯-约当消去方法!
说明:A双精度实型二维数组,n*n,输入参数,存放方程组的系数矩阵,返回时被破坏
B双精度实型二维数组,n*M,输入、输出参数,调用时存放M组常数向量,返回M组解向量
N整形输入参数,阶数
M整形输入参数,右端常数向量的组数
L整形输出参数,若L=0,说明系数矩阵奇异,求解失败,若L!=0,正常返回求解正确

        SUBROUTINE AGJDN(A,B,N,M,L,JS)
        DIMENSION A(N,N),B(N,M),JS(N)
        DOUBLE PRECISION A,B,D
        L=1
        DO 100 K=1,N
          Q=0.0
          DO 10 I=K,N
          DO 10 J=K,N
          IF (ABS(A(I,J)).GT.Q) THEN
              Q=ABS(A(I,J))
              JS(K)=J
              IS=I
          END IF
10          CONTINUE
          IF (Q+1.0.EQ.1.0) THEN
          WRITE(*,20)
          L=0
          RETURN
          END IF
20          FORMAT(1X,'FAIL')
          DO 30 J=K,N
          D=A(K,J)
          A(K,J)=A(IS,J)
          A(IS,J)=D
30          CONTINUE
          DO 40 J=1,M
          D=B(K,J)
          B(K,J)=B(IS,J)
          B(IS,J)=D
40          CONTINUE
          DO 50 I=1,N
          D=A(I,K)
          A(I,K)=A(I,JS(K))
          A(I,JS(K))=D
50          CONTINUE
          DO 60 J=K+1,N
60          A(K,J)=A(K,J)/A(K,K)
          DO 70 J=1,M
70          B(K,J)=B(K,J)/A(K,K)
          DO 90 I=1,N
          IF (I.NE.K) THEN
              DO 80 J=K+1,N
80              A(I,J)=A(I,J)-A(I,K)*A(K,J)
              DO 85 J=1,M
85              B(I,J)=B(I,J)-A(I,K)*B(K,J)
          END IF
90          CONTINUE
100        CONTINUE
        DO 110 K=N,1,-1
        DO 110 J=1,M
          D=B(K,J)
          B(K,J)=B(JS(K),J)
          B(JS(K),J)=D
110        CONTINUE
        RETURN
        END

[ 本帖最后由 flybaly 于 2006-7-6 13:27 编辑 ]
页: [1]
查看完整版本: "求线性方程组的通解"要用什么函数做?