风奔跑 发表于 2008-5-6 12:46

[原创]直接求逆阵解方程 与 用反循环求逆法求方程解的时间与解对比

clc;clear;<br/>%//////////////////////////////////////////////////////////////////////////<br/>%构造二重循环矩与构造b向量<br/>n=input('请输入你要求的方矩阵维数N=:');<br/>A=zeros(n,n);<br/>i=1;<br/>while(1&gt;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编辑过]

gdmojifei 发表于 2009-4-3 19:31

强人!!!!顶起来
页: [1]
查看完整版本: [原创]直接求逆阵解方程 与 用反循环求逆法求方程解的时间与解对比