Main Content

symbfact

シンボリックな因子解析

構文

count = symbfact(A)
count = symbfact(A,'sym')
count = symbfact(A,'col')
count = symbfact(A,'row')
count = symbfact(A,'lo')
[count,h,parent,post,R] = symbfact(...)
[count,h,parent,post,L] = symbfact(A,type,'lower')

説明

count = symbfact(A) は、R=chol(A) の行カウントのベクトルを返します。symbfact は、chol (A) より高速にする必要があります。

count = symbfact(A,'sym') は、count = symbfact(A) と同じです。

count = symbfact(A,'col') は、(明示的に形成することなく) R=chol(A'*A) の行カウントを返します。

count = symbfact(A,'row') は、R=chol(A*A') の行カウントを返します。

count = symbfact(A,'lo') は、count = symbfact(A) と同じ結果になり、tril(A) を使用します。

[count,h,parent,post,R] = symbfact(...) には、オプションの戻り値がいくつかあります。

次のコレスキー分解の flop 数は、sum(count.^2) です。

戻り値説明
h

消去ツリーの高さ

parent

消去ツリー自身

post

消去ツリーのポスト順

R

対称の場合は関数 chol(A) の構造をもつ 0-1 行列で、'col' の場合は関数 chol(A'*A) で、'row' の場合は関数 chol(A*A') です。

関数 symbfact(A) と関数 symbfact(A,'sym') は、関数 A (triu(A)) の上三角部分を使用します。また、下三角部分は上三角部分の転置であることを前提としています。symbfact(A,'lo') は代わりに関数 tril(A) を使用します。

[count,h,parent,post,L] = symbfact(A,type,'lower') は、type'sym''col''row''lo' のいずれかで、下三角部分のシンボリックな因子 L=R' を返します。この形式は速く、少ないメモリを必要とします。

参照

[1] Chen, Yanqing, Timothy A. Davis, William W. Hager, and Sivasankaran Rajamanickam. “Algorithm 887: CHOLMOD, Supernodal Sparse Cholesky Factorization and Update/Downdate.” ACM Transactions on Mathematical Software 35, no. 3 (October 2008): 1–14. https://doi.org/10.1145/1391989.1391995.

拡張機能

バージョン履歴

R2006a より前に導入