文档详情

数值分析1-列主元&全主元消去法

M****1
实名认证
店铺
DOCX
24.22KB
约6页
文档ID:386991595
数值分析1-列主元&全主元消去法_第1页
1/6

作业二:分别编写用列主元消去法和全主元消去法求解线性方程组的原则程序,求下列方程的解0.832 0.448 0.1930.784 0.421 0.2070.784 -0.421 0.293x1x2x3=100高斯全主元消去法:流程图开始判断有无解,并输出寻找绝对值最大的项并记录位置换主行,换主列并记录求解,并换回互换的列位子结束解题思路 一方面寻找绝对值最大的项并记录位置,然后换主行,换主列并记录,最后再求解,并换回之前互换的矩阵的列位程序function [x,qa]=gaussq(a,b) %输出想x为解,qa为全主元变换后的a矩阵a=[0.832 0.448 0.193;0.784 0.421 0.207;0.784 -0.421 0.293];b=[1,0,0]';d=[a b]; RA=rank(a);RD=rank(d);L=length(b);n=size(a);pos=1:n(1); if RA~=RD fprintf('无解') else if RA~=L fprintf('有无数多种解') else fprintf('有唯一解') for q=1:n big=max(max(abs(a(q:n,q:n)))); for r=q:n for t=q:n if big==abs(a(r,t)) zhuh=r; zhul=t; end end end p=a(q,:); %换主行a(q,:)=a(zhuh,:); a(zhuh,:)=p; bb=b(q); b(q)=b(zhuh); b(zhuh)=bb; p=a(:,q); %换主列a(:,q)=a(:,zhul); a(:,zhul)=p; p=pos(q); %记录由于换主列而导致的解的位置的变化 pos(q)=pos(zhul); pos(zhul)=p; end c=[a b]; for j=1:L-1 %化为上三角阵 for i=(j+1):L m=c(i,j)/c(j,j); c(i,:)=c(i,:)-c(j,:)*m; end end x(L,1)=c(L,L+1)/c(L,L); for k=L-1:-1:1 %求解x x(k,1)=(c(k,L+1)-c(k,k+1:L)*x(k+1:L))/c(k,k); end y=[1:n(1)]'; %互换被列调换时打乱的解的位置 for w=1:n for v=1:n if (pos(v)==w) y(w)=x(v); end end end x=y; end endqa=a程序成果高斯列主元消去法:流程图开始判断有无解,并输出寻找目前列中绝对值最大的项换主行求解结束程序% function [x,qa]=gaussq(a,b) a=[0.832 0.448 0.193;0.784 0.421 0.207;0.784 -0.421 0.293];b=[1,0,0]';d=[a b]; L=length(b);n=size(a);for q=1:n big=max(max(abs(a(q:n,q:n)))); for r=q:n if big==abs(a(r,q)) zhuh=r; end end p=a(q,:); %换主行a(q,:)=a(zhuh,:); a(zhuh,:)=p; bb=b(q); b(q)=b(zhuh); b(zhuh)=bb; end c=[a b]; for j=1:L-1 %化为上三角矩阵 for i=(j+1):L m=c(i,j)/c(j,j); c(i,:)=c(i,:)-c(j,:)*m; end end x(L,1)=c(L,L+1)/c(L,L); for k=L-1:-1:1 %求解 x(k,1)=(c(k,L+1)-c(k,k+1:L)*x(k+1:L))/c(k,k); end 程序成果。

下载提示
相似文档
正为您匹配相似的精品文档