MATLAB实现高斯列主元消去法的问题
来源:学生作业帮 编辑:搜狗做题网作业帮 分类:综合作业 时间:2024/07/08 21:15:32
MATLAB实现高斯列主元消去法的问题
把问号改了之后,在MATLAB中实现高斯列主元消去法解线性方程组
function x = gauss(A,b)
[n,n] = size(A);
x = zeros(n,1);
Aug = [A,b]; % 增广矩阵
for k = 1:n-1
[piv,r] = max(abs(Aug(k:n,k))); % 找列主元所在子矩阵的行r
r = r + k - 1; % 列主元所在大矩阵的行
if r>k
end
if Aug(k,k)==0,error('?'),end
% 把增广矩阵消元成为上三角
for p = k+1:n
end
end
% 解上三角方程组
A = Aug(:,1:n); b = Aug(:,n+1);
x(n) = ;
for k = n-1:-1:1
x(k) = ;
end
A = [10 -7 0
-3 2 6
5 -1 5];
b = [7 4 6]';
把问号改了之后,在MATLAB中实现高斯列主元消去法解线性方程组
function x = gauss(A,b)
[n,n] = size(A);
x = zeros(n,1);
Aug = [A,b]; % 增广矩阵
for k = 1:n-1
[piv,r] = max(abs(Aug(k:n,k))); % 找列主元所在子矩阵的行r
r = r + k - 1; % 列主元所在大矩阵的行
if r>k
end
if Aug(k,k)==0,error('?'),end
% 把增广矩阵消元成为上三角
for p = k+1:n
end
end
% 解上三角方程组
A = Aug(:,1:n); b = Aug(:,n+1);
x(n) = ;
for k = n-1:-1:1
x(k) = ;
end
A = [10 -7 0
-3 2 6
5 -1 5];
b = [7 4 6]';
![MATLAB实现高斯列主元消去法的问题](/uploads/image/z/8675992-64-2.jpg?t=MATLAB%E5%AE%9E%E7%8E%B0%E9%AB%98%E6%96%AF%E5%88%97%E4%B8%BB%E5%85%83%E6%B6%88%E5%8E%BB%E6%B3%95%E7%9A%84%E9%97%AE%E9%A2%98)
%%按你的思路修改的,我试了一两个例子,还行.
function x = gauss(A,b)
[n,n] = size(A);
x = zeros(n,1);
Aug = [A,b]; %增广矩阵
for k = 1:n-1
[piv,r] = max(abs(Aug(k:n,k))); %找列主元所在子矩阵的行r
r = r + k - 1; % 列主元所在大矩阵的行
if r>k
temp=Aug(k,:);
Aug(k,:)=Aug(r,:);
Aug(r,:)=temp;
end
if Aug(k,k)==0,error('对角元出现0'),end
% 把增广矩阵消元成为上三角
for p = k+1:n
Aug(p,:)=Aug(p,:)-Aug(k,:)*Aug(p,k)/Aug(k,k);
end
end
% 解上三角方程组
A = Aug(:,1:n); b = Aug(:,n+1);
x(n) = b(n)/A(n,n);
for k = n-1:-1:1
x(k)=b(k);
for p=n:-1:k+1
x(k) = x(k)-A(k,p)*x(p);
end
x(k)=x(k)/A(k,k);
end
function x = gauss(A,b)
[n,n] = size(A);
x = zeros(n,1);
Aug = [A,b]; %增广矩阵
for k = 1:n-1
[piv,r] = max(abs(Aug(k:n,k))); %找列主元所在子矩阵的行r
r = r + k - 1; % 列主元所在大矩阵的行
if r>k
temp=Aug(k,:);
Aug(k,:)=Aug(r,:);
Aug(r,:)=temp;
end
if Aug(k,k)==0,error('对角元出现0'),end
% 把增广矩阵消元成为上三角
for p = k+1:n
Aug(p,:)=Aug(p,:)-Aug(k,:)*Aug(p,k)/Aug(k,k);
end
end
% 解上三角方程组
A = Aug(:,1:n); b = Aug(:,n+1);
x(n) = b(n)/A(n,n);
for k = n-1:-1:1
x(k)=b(k);
for p=n:-1:k+1
x(k) = x(k)-A(k,p)*x(p);
end
x(k)=x(k)/A(k,k);
end