【问题标题】:Matrix Inverse Code(c, c++, fortran or tksolver)矩阵逆码(c、c++、fortran 或 tksolver)
【发布时间】:2010-11-23 18:26:31
【问题描述】:

我需要一个代码来使用行操作确定 nxn 矩阵 A 的逆矩阵。 我写这段代码的时间很可笑。有什么帮助,我是一名研究生,多年来没有上过编程课。谢谢。

【问题讨论】:

  • 假设您被要求编写逆变器(而不是只需要使用库中的一个),第一个问题是:您可以手动执行逆变器吗?如果是这样,请尝试编写该过程,然后告诉我们您卡在哪里...
  • 我需要一个项目的代码
  • 反转需要为 nxn 矩阵编码,因此问题
  • 没问题 - 获得一个好的库。你不需要编码它——除非那是任务。如果这是真的,那就忙起来吧。

标签: matrix linear-algebra matrix-inverse


【解决方案1】:

你可能并不真正想要反过来。如果您尝试求解方程组,最好使用 LU 分解。

你没有说你想用什么语言编写这个应用程序。Java 有 Apache Commons Math; Python 有 NumPy; FORTRAN 有 LinPack。选择一种语言并使用一个库;不要自己写。

【讨论】:

【解决方案2】:

如果您多年未上过编程课,我建议您使用 Scilab 或 MATLAB 进行矩阵运算。

如果是一次性计算,请查看 WolframAlpha。

如果使用库是 C++ 的一个选项,请查看 Armadillo

【讨论】:

  • 理想情况下我会使用mathematica,但这些是代码允许的唯一程序:c c++ fortran tksolver
【解决方案3】:
  SUBROUTINE MATINV(A,N)
  DIMENSION A(N,N)
  DO 1 I=1,N
     Z=A(I,I)
     A(I,I)=1.0
     DO 2 J=1,N
2       A(I,J)=A(1,J)/Z
     DO 1 K=1,N
        IF (K-I) 3,1,3
3          Z=A(K,I)
        A(K,I)=0.0
        DO 4 J=1,N
4          A(K,J)=A(K,J)-Z*A(I,J)
1 CONTINUE
  RETURN
  END

【讨论】:

    【解决方案4】:

    看看Numerical Recipies Online。 Fortran 77、Ansi C 和 Fortran 90 代码是免费的,您可以获得大量关于如何以最佳方式进行操作的线索。

    【讨论】:

      猜你喜欢
      • 2010-11-02
      • 2020-05-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多