How should I find the Cholesky factorization of the gramian in MATLAB?

3 ビュー (過去 30 日間)
I used two methods to find the Cholesky factorization of a gramian. These methods yield different results for certain systems.
The first method is to use command GRAM with option 'of'
rq = gram(SYS, 'of')
The second method is to find the gramian first, then take the Cholesky factorization.
q = gram(SYS, 'o');
rq = chol (q);

採用された回答

MathWorks Support Team
MathWorks Support Team 2009 年 6 月 27 日
The command GRAM calculates the Cholesky factorization of the gramian directly from a Cholesky Lyapunov solver. If there is no specified factorization, GRAM explicitly forms the product Wo = R' * R. In other words,
q = gram(SYS, 'o');
is equivalent to:
r = gram(SYS, 'of');
q = r' * r;
To calculate the Cholesky factorization of the gramian,
rq = gram(SYS, 'of');
should be used. Using:
q = gram(SYS, 'o');
rq = chol(q);
may cause round-off errors and scaling issues. This is so because it performs the product q = r' * r first in the call to GRAM and then refactorizes the product q using CHOL.

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMatrix Computations についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by