-9

これは、このウェブサイトでの私の最初の質問です。私は(必死に)自分のプログラムで大きな行列を反転しようとしています。これを行うためにlapackを使用したいと思います。非常に有望に見えるこのスレッドを見つけましたが、C++言語だと思います。手伝ってくれませんか?

C で lapack を使用して逆行列を計算する

ありがとうございました。

更新: そうです、答えは少し不明確です。投稿したプログラムを私のものに組み込んだ後、次のエラーが発生します。

mymatrixmalloc_2.c:15:18: fatal error: cstdio: non existing File or directory 
#include <cstdio>
              ^
compilation terminated.

問題は、llapack ライブラリを適切にインストールしていないか、コンパイル中にそれを含めていることだと思います。

これは私がライブラリをインストールした方法です(ターミナルから、私はUbuntuを持っています):

sudo apt-get install build-essential
sudo apt-get install liblapack*
sudo apt-get install libblas*

そして、これが私がコンパイルする方法です:

davide@John:~$ gcc -Wall -lm -llapack -lblas mymatrixmalloc_2.c -o mymatrixmalloc_2.exe

私は何を間違っていますか?

4

2 に答える 2

0

個人的には、次の 2 つの方法を使用して逆行列を実装してみました。

  1. アジョイント法を使用した逆行列。
  2. Gauss-Jordan 法を使用した逆行列。

そして、これら 2 つの実装の中で、Gauss-Jordan が優れていることがわかりました。100x100 行列で試したところ、マシンで 2 秒以内に結果が得られました。ただし、1000x1000 は試していません。逆を見つけるための他のより良いアルゴリズムを知りません。Gauss-Jordan の実装はそれほど複雑ではありません。

于 2019-06-07T09:58:55.697 に答える