数学建模社区-数学中国

标题: [原创]直接求逆阵解方程 与 用反循环求逆法求方程解的时间与解对比 [打印本页]

作者: 风奔跑    时间: 2008-5-6 12:46
标题: [原创]直接求逆阵解方程 与 用反循环求逆法求方程解的时间与解对比
clc;clear;
%//////////////////////////////////////////////////////////////////////////
%构造二重循环矩与构造b向量
n=input('请输入你要求的方矩阵维数N=:');
A=zeros(n,n);
i=1;
while(1>0)
A(i,i)=3;
A(i,i+1)=1;
if(i==n-1)
A(i+1,1)=-A(1,2);
A(i+1,n)=A(1,1);
break;
end
i=i+1;
end
b=zeros(n,1);
b(1:n)=5;
%构造二重循环矩与构造b向量
%//////////////////////////////////////////////////////////////////////////

%**************************************************************************
%直接用逆矩阵求解
tic
display('以下的矩阵值将是所求的解,这是直接求的解值 与时间');
X1=inv(A)*b
toc
%**************************************************************************

%//////////////////////////////////////////////////////////////////////////
%这个过程是用反循环矩阵求解的过程
tic
display('这就是二元反循环矩阵的逆矩阵公式求出来的解 与时间');
%构造反循环矩阵的逆
%先构造逆矩阵的第一行元素
B=zeros(n-1,n-1);
T=det(A);%求出原矩阵的行列式
A1=zeros(n,n);
KK=zeros(1,n);
KK(1,1)=det(A(2:n,2:n))/T;
for j=2:n
B(1:n-1,1:j-1)=A(2:n,1:j-1);
B(1:n-1,j:n-1)=A(2:n,j+1:n);
KK(1,j)=(-1)^(j+1)*det(B)/T;
end
A1(1,1:n)=KK(1,1:n);
%由第一行元素开始构造A的逆矩阵
for g=2:n
A1(g,1)=-A1(g-1,n);
for gg=2:n
A1(g,gg)=A1(g-1,gg-1);
end
end
A1;%这就是二元反循环矩阵的逆矩阵

%这就是二元反循环矩阵的逆矩阵公式求出来的解
X2=A1'*b
toc
%//////////////////////////////////////////////////////////////////////////










[此贴子已经被作者于2008-5-8 22:37:46编辑过]

作者: gdmojifei    时间: 2009-4-3 19:31
强人!!!!顶起来




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5