实现杜里特尔分解法用matlab
时间: 2023-11-26 22:03:32 浏览: 83
以下是使用Matlab实现杜利特尔分解法的代码:
```matlab
function [L,U,y,x] = Doolittle(A,b)
% Doolittle分解法
% A为系数矩阵,b为常数列
% L为下三角矩阵,U为上三角矩阵,y为Ly=b的解,x为Ux=y的解
n = length(b);
L = eye(n);
U = zeros(n);
y = zeros(n,1);
x = zeros(n,1);
for k = 1:n
U(k,k:n) = A(k,k:n) - L(k,1:k-1)*U(1:k-1,k:n);
L(k+1:n,k) = (A(k+1:n,k) - L(k+1:n,1:k-1)*U(1:k-1,k))/U(k,k);
end
y(1) = b(1)/L(1,1);
for k = 2:n
y(k) = (b(k) - L(k,1:k-1)*y(1:k-1))/L(k,k);
end
x(n) = y(n)/U(n,n);
for k = n-1:-1:1
x(k) = (y(k) - U(k,k+1:n)*x(k+1:n))/U(k,k);
end
```
其中,输入参数A为系数矩阵,b为常数列,输出参数L为下三角矩阵,U为上三角矩阵,y为Ly=b的解,x为Ux=y的解。