テストでこれを解決するのに永遠に時間がかかる場合は、おそらく解決のために仮想メモリを使用しています。15k平方(フル)マトリックスは、メモリに格納するために1.8ギガバイトのRAMを必要とします。
>> 15000^2*8
ans =
1.8e+09
これを解決するには、本格的なRAMと、64ビットバージョンのMATLABが必要になります。問題を解決するのに十分なRAMがない限り、因数分解は役に立ちません。
行列が本当にスパースである場合、MATLABのスパース形式を使用して行列を格納していますか?そうでない場合、MATLABは行列がスパースであることを認識せず、スパース因数分解を使用しません。
Aはどのくらいまばらですか?多くの人は、ゼロで半分満たされた行列は「スパース」であると考えています。それは時間の無駄です。そのサイズの行列では、行列のスパース因数分解から真に得るには、99%をはるかに超えるゼロが必要です。これは記入によるものです。結果として得られる因数分解された行列は、それ以外の場合、ほとんどの場合ほぼ満杯です。
より多くのRAMを取得できない場合(RAMはご存知のとおりです。確かに、これを解決するために無駄に費やした時間を考慮すると)、反復ソルバーを試す必要があります。これらのツールはマトリックスを因数分解しないため、マトリックスが本当にスパースである場合、仮想メモリには入りません。これは大幅な節約です。
反復ツールは、可能な限り機能するために前処理行列を必要とすることが多いため、最適な前処理行列を見つけるには、ある程度の調査が必要になる場合があります。