找列主元高斯消去法来求解线性代数方程组解的matlab程序

如题所述

高斯列主元消去法

function X=Gauss_pivot(A,B)

% 用Gauss列主主元消去法解线性方程组AX=B

%X是未知向量

n=length(B);

X=zeros(n,1);

c=zeros(1,n);

d1=0

for i=1:n-1

max=abs(A(i,i));

m=i;

for j=i+1:n

if max<abs(A(j,i))

max=abs(A(j,i));

m=j;

end

end

if(m~=i)

for k=i:n

c(k)=A(i,k);

A(i,k)=A(m,k);

A(m,k)=c(k);

end

d1=B(i);

B(i)=B(m);

B(m)=d1;

end

for k=i+1:n

for j=i+1:n

A(k,j)=A(k,j)-A(i,j)*A(k,i)/A(i,i);

end

B(k)=B(k)-B(i)*A(k,i)/A(i,i);

A(k,i)=0;

end

end

%回代求解

X(n)=B(n)/A(n,n);

for i=n-1:-1:1

sum=0;

for j=i+1:n

sum=sum+A(i,j)*X(j);

end

X(i)=(B(i)-sum)/A(i,i);

End
温馨提示:内容为网友见解,仅供参考
第1个回答  2011-11-06
function X=Gauss_pivot(A,B)
n=length(B);
X=zeros(n,1);
c=zeros(1,n);
d1=0
for i=1:n-1
max=abs(A(i,i));
m=i;
for j=i+1:n
if max<abs(A(j,i))
max=abs(A(j,i));
m=j;
end
end
if(m~=i)
for k=i:n
c(k)=A(i,k);
A(i,k)=A(m,k);
A(m,k)=c(k);
end
d1=B(i);
B(i)=B(m);
B(m)=d1;
end
for k=i+1:n
for j=i+1:n
A(k,j)=A(k,j)-A(i,j)*A(k,i)/A(i,i);
end
B(k)=B(k)-B(i)*A(k,i)/A(i,i);
A(k,i)=0;
end
end
X(n)=B(n)/A(n,n);
for i=n-1:-1:1
sum=0;
for j=i+1:n
sum=sum+A(i,j)*X(j);
end
X(i)=(B(i)-sum)/A(i,i);
end
第2个回答  2020-12-18

用MATLAB 实现列主元高斯消去法
function x=gauss_lie(A,b)采用高斯列主元法求解方程组Ax=b n=length(b);p=1:n;lu=A;y=[];for k=1:n [c,i]=max(abs(lu(k:n,k)));ik=i+k-1;if ik~=k m=p(k);p(k)=p(ik);p(ik)=m;ck=lu(k,:);lu(k,:)=lu(ik,:);lu(ik,:)=ck;end if k==n break;e...

matlab程序代码解释,【注】需要每条程序语句都需要解释 急急急...
disp('B和A的秩均等于n,方程组有唯一解,用高斯列主元消去法求解过程如下:') %屏幕输出这句话 for p=1:n-1 %高斯消元法,逐步将B化为梯形矩阵,即近似上三角形的矩阵 disp('p='); %屏幕显示当前对第几列进行操作 disp(p);[Y,j]=max(abs(B(p:n,p))); %从第p列的p到n行...

...高斯消去法、列主元、全主元 北太天元或Matlab实现
当我们面对线性方程组[公式],其中矩阵A非奇异,目标是求解向量[公式],可以采用一系列的求解策略,包括Gauss消去法,列主元和全主元方法。Gauss消去法首先,耿直版消元法通过逐步消元将系数矩阵转化为上三角矩阵。过程简要概括为[公式],其中[公式],若[公式],会进行行调整,如[公式]。此方法的缺点在...

...高斯列主元消去法求解线性方程组,写出相应的程序或程序段,编程语言...
void input(); \/\/输入方程组void print_menu(); \/\/打印主菜单int choose (); \/\/输入选择void cramer(); \/\/Cramer算法解方程组void gauss_row(); \/\/Gauss列主元解方程组void guass_all(); \/\/Gauss全主元解方程组void Doolittle(); \/\/用Doolittle算法解方程组int Doolittle_check(double a[][Number],do...

...列主元高斯消去法,LU分解法求解的matlab程序是怎样的
但计算量的方法比主元大多主元法只在每次消除同一列的比较的元素,做的比较与线性方程组的顺序数,n是相同的顺序,每做一次全主元素法消除系数矩阵所有元素的比较,计算量是比多列主元大的计算量,在一般情况下,不使用的完整的初级元件方法,而主元素的使用方法可以n ^ 2的相同的顺序。

编写解线性代数方程组的列主元高斯消去法的一个函数,并调用之求矩阵A...
代码是:A=[1 2 3 4;2 3 1 2;1 1 1 -1;1 0 -2 -6];n=length(A);L=eye(n);U=A;for k=1:n-1 for j=k+1:n L(j,k)=U(j,k)\/U(k,k);end for i=k+1:n for j=k+1:n U(i,j)=U(i,j)-L(i,k)*U(k,j);end end end U=triu(U);L U norm(A-L...

试用高斯消元法编制Fortran程序计算n元一次方程组的解,并用一个三元...
! 这段是 高斯消去法的核心部分 do k=1,N-1 do i=k+1,N temp=Ab(i,k)\/Ab(k,k)Ab(i,:)=Ab(i,:)-temp*Ab(k,:)end do end do Aup(:,:)=Ab(1:N,1:N)bup(:)=Ab(:,N+1)!调用用上三角方程组的回带方法 call uptri(Aup,bup,x,n)end subroutine solve subroutine ...

Matlab 知道矩阵A 如何求A的逆矩阵中的指定的几行,因为我只用那几行...
求解上述方程即可得到x(T),即就是A逆的第i行。至于求线性方程组的方法就很多了,比如Gauss,G-S迭代之类的……下面给出列主元消去的Gauss方法求解线性方程组的matlab源程序。希望能给你提供一种求解问题的思路 function x=gausspp(A,b)列主元法高斯消去法解线性方程组 n=length(b);b=reshape(b...

求C语言课程设计:用高斯列主元消元法解线性方程组
方程可化为L*U*x=B,令U*x=y --->L*y=B 然后利用回代先求y,再利用y求x 因为该方法在求解过程中不涉及增广矩阵所以矩阵B几乎不参与什么运算,所以它的计算速度应该能够达到高斯列主元消元法的三倍,但原理与其基本一致。而且我在程序中使用了动态数组方便你今后进行扩展。以下程序按照《矩阵论...

x1-x2+2x3=-2 -2x+x2-x3=2 4x1-x2+2x3=-1
用列主元高斯消去法求解现行方程组:x1-x2+2x3=-2 (1)-2x1+x2-x3=2 (2)4x1-x2+2x3=-1 (3)由(1)+(2)得 -x1+x3==0 (4)由(2)+(3)得 2x1+x3==1 (5)由(4)-(5)得 -3x1==-1 x1==1\/3 把x1带入(4)得 -1\/3+x3==1 x3==4\/3 把...

相似回答