📄 lsolve.m
字号:
function x = lsolve(A, b)
% x = lsolve(A, b) returns the solution to the equation Ax = b,
% where A is an n-by-b matrix and b is a column vector of
% length n (or a matrix with several such columns).
% Gaussian elimination with partial pivoting
[n, n] = size(A);
for k = 1 : n-1
% find index of largest element below diagonal in column k
max = k;
for i = k+1 : n
if abs(A(i, k)) > abs(A(max, k))
max = i;
end
end
% swap with row k
A([k max], :) = A([max k], :);
b([k max]) = b([max k]);
% zero out entries of A and b using pivot A(k, k)
A(k+1:n,k)=A(k+1:n,k)/A(k,k);
b(k+1:n)=b(k+1:n)-A(k+1:n,k)*b(k);
A(k+1:n,k+1:n)=A(k+1:n,k+1:n)-A(k+1:n,k)*A(k,k+1:n);
%for i = k+1 : n
%alpha = A(i, k) / A(k, k);
%b(i) = b(i) - alpha * b(k);
%A(i, :) = A(i, :) - alpha * A(k, :);
%end
end
% back substitution
x = zeros(size(b));
for i = n : -1 : 1
j = i+1 : n;
x(i) = (b(i) - A(i, j) * x(j)) / A(i, i);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -