matlab用三角分解法函数代码
时间: 2024-03-01 15:53:40 浏览: 14
以下是使用三角分解法实现矩阵LU分解的MATLAB代码:
```matlab
function [L,U] = tri_decomp(A)
% Triangular decomposition using LU factorization
% A: input matrix
% L: lower triangular matrix
% U: upper triangular matrix
[m,n] = size(A);
if m ~= n
error('Input matrix must be square');
end
L = eye(n); % initialize L as identity matrix
U = A; % initialize U as input matrix
for k = 1:n-1
if U(k,k) == 0
error('Zero pivot encountered');
end
for i = k+1:n
L(i,k) = U(i,k) / U(k,k); % compute multiplier
U(i,k:n) = U(i,k:n) - L(i,k)*U(k,k:n); % update U
end
end
end
```
使用示例:
```matlab
A = [1 2 3; 4 5 6; 7 8 10];
[L,U] = tri_decomp(A);
disp(L);
disp(U);
```
输出结果:
```matlab
1.0000 0 0
4.0000 1.0000 0
7.0000 2.0000 1.0000
1.0000 2.0000 3.0000
0 -3.0000 -6.0000
0 0 1.0000
```