matlab数值分析程序--高等数学,数值代数的matlab实现-文字版, matlab电子书, 和matlab 有关的电子书:

3.3.1 高斯消元法及其MATLAB程序

3.3.1  高斯消元法及其MATLAB程序

用高斯消元法解线性方程组的MATLAB程序

function [RA,RB,n,X]=gaus(A,b)

B=[A b]; n=length(b); RA=rank(A);

RB=rank(B);zhica=RB-RA;

if zhica>0,

disp('请注意:因为RA~=RB,所以此方程组无解.')

return

end

if RA==RB

   if RA==n

disp('请注意:因为RA=RB=n,所以此方程组有唯一解.')

 X=zeros(n,1); C=zeros(1,n+1);

      for p= 1:n-1

for k=p+1:n

             m= B(k,p)/ B(p,p);

 B(k,p:n+1)= B(k,p:n+1)-m* B(p,p:n+1);

end

end

         b=B(1:n,n+1);A=B(1:n,1:n); X(n)=b(n)/A(n,n);

      for q=n-1:-1:1

         X(q)=(b(q)-sum(A(q,q+1:n)*X(q+1:n)))/A(q,q);

      end

else

         disp('请注意:因为RA=RB<n,所以此方程组有无穷多解.')

end

end

 

例3.3.2  用高斯消元法和MATLAB程序求解下面的非齐次线性方程组,并且用逆矩阵解方程组的方法验证.

解 在MATLAB工作窗口输入程序

>> A=[1 -1 1 -3; 0 -1 -1 1;2 -2 -4 6;1 -2 -4 1];

b=[1;0; -1;-1]; [RA,RB,n,X] =gaus (A,b)

运行后输出结果

请注意:因为RA=RB=n,所以此方程组有唯一解.

文本框: X =
         0
   -0.5000
    0.5000
             0
RA =

     4

RB =

     4

n =

     4

 

欢迎转载,转载请注明来自一手册:http://yishouce.com/book/3/3030301.html
友情链接It题库(ittiku.com)| 版权归yishouce.com所有| 友链等可联系 admin#yishouce.com|粤ICP备16001685号-1