在matlab中修改lutx函数

时间:2014-10-15 19:54:32

标签: matlab

这是我的第一个问题。我只是想找人指点我正确的方向。

矩阵分解LU = PA可用于计算A的行列式。我们有

det(L)det(U) = det(P)det(A).

因为L是对角线上的L为三角形,det(L) = 1。因为U是三角形,det(U) = u 11 u 22 · · · u nn。因为P是置换,如果交换的数量是偶数,则det(P) = +1,如果是奇数,则为-1。所以det(A) = ±u 11 u 22 · · · u nn

修改lutx函数,使其返回四个输出。

function [L,U,p,sig] = lutx(A)
%LU Triangular factorization
% [L,U,p,sig] = lutx(A) computes a unit lower triangular
% matrix L, an upper triangular matrix U, a permutation
% vector p, and a scalar sig, so that L*U = A(p,:) and
% sig = +1 or -1 if p is an even or odd permutation.

编写一个函数mydet(A),它使用你修改过的lutx来计算A的行列式。在Matlab中,产品u 11 u 22···u nn可以通过表达式prod(diag(U))来计算。

我无法使用该功能显示所有四个输出。我不明白为什么函数不会自动执行。如果有人能指出我正确的方向,那将非常感激。

0 个答案:

没有答案