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

3.3.2 列主元消元法及其MATLAB程序

3.3.2  列主元消元法及其MATLAB程序

用列主元消元法解线性方程组的MATLAB程序

function [RA,RB,n,X]=liezhu(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

[Y,j]=max(abs(B(p:n,p))); C=B(p,:);

B(p,:)= B(j+p-1,:); B(j+p-1,:)=C;

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.3  用列主元消元法解线性方程组的MATLAB程序解方程组

.

解 在MATLAB工作窗口输入程序

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

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

运行后输出结果

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

RA = 4,RB = 4,n = 4,X =[0 -0.5 0.5 0]’


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