[原创]直接求逆阵解方程 与 用反循环求逆法求方程解的时间与解对比
clc;clear;<br/>%//////////////////////////////////////////////////////////////////////////<br/>%构造二重循环矩与构造b向量<br/>n=input('请输入你要求的方矩阵维数N=:');<br/>A=zeros(n,n);<br/>i=1;<br/>while(1>0)<br/> A(i,i)=3;<br/> A(i,i+1)=1;<br/> if(i==n-1)<br/> A(i+1,1)=-A(1,2);<br/> A(i+1,n)=A(1,1);<br/> break;<br/> end<br/>i=i+1;<br/>end<br/>b=zeros(n,1);<br/>b(1:n)=5;<br/>%构造二重循环矩与构造b向量<br/>%//////////////////////////////////////////////////////////////////////////<br/><br/>%**************************************************************************<br/>%直接用逆矩阵求解<br/>tic<br/>display('以下的矩阵值将是所求的解,这是直接求的解值 与时间');<br/>X1=inv(A)*b<br/>toc<br/>%**************************************************************************<br/><br/>%//////////////////////////////////////////////////////////////////////////<br/>%这个过程是用反循环矩阵求解的过程<br/>tic<br/>display('这就是二元反循环矩阵的逆矩阵公式求出来的解 与时间');<br/>%构造反循环矩阵的逆<br/>%先构造逆矩阵的第一行元素<br/>B=zeros(n-1,n-1);<br/>T=det(A);%求出原矩阵的行列式<br/>A1=zeros(n,n);<br/>KK=zeros(1,n);<br/>KK(1,1)=det(A(2:n,2:n))/T;<br/>for j=2:n<br/> B(1:n-1,1:j-1)=A(2:n,1:j-1);<br/> B(1:n-1,j:n-1)=A(2:n,j+1:n);<br/> KK(1,j)=(-1)^(j+1)*det(B)/T;<br/>end<br/>A1(1,1:n)=KK(1,1:n);<br/>%由第一行元素开始构造A的逆矩阵<br/>for g=2:n<br/> A1(g,1)=-A1(g-1,n);<br/> for gg=2:n<br/> A1(g,gg)=A1(g-1,gg-1);<br/> end<br/>end<br/>A1;%这就是二元反循环矩阵的逆矩阵<br/><br/>%这就是二元反循环矩阵的逆矩阵公式求出来的解<br/>X2=A1'*b<br/>toc<br/>%//////////////////////////////////////////////////////////////////////////<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>[此贴子已经被作者于2008-5-8 22:37:46编辑过] 强人!!!!顶起来
页:
[1]