您当前的位置:matlab资源网文章中心资料 → 文章内容

导纳矩阵的形成

作者:swjtu  来源:转载http://www.blog.edu.cn/user5/283105/archives/2008/2098597.shtml  发布时间:2008-4-17 8:17:38

#i nclude<iostream.h>
#i nclude<stdio.h>

#define N 4
#define M N*(N-1)/2

void trianglestore(int A[N][N])
{
int i,j;
 for(i=0;i<N;i++)
 {
  for(j=0;j<N;j++)
   cout<<A[i][j];
  cout<<endl;
  
 }
 
 int U[M],JU[M],IU[N],L[M],IL[M],JL[N],D[N];
 for(i=0;i<N;i++)
  IU[i]=0;
    //存储A的上三角部分的非零元的值,按行一次存储//
  int k=0;
  int q=0;
  for(i=0;i<N;i++)
  {
   for( j=i+1;j<N;j++)
  
   {
    if(A[i][j]!=0)
    {
     U[k]=A[i][j];
    //存储A中上三角部分的非零元的列号//
     JU[k]=j;
        k++;
    //存储A中上三角部分每行第一个非零元再U中的位置(首地址)//
     if(IU[i]=0)
     {
      IU[i]=1+q;
      q++;
     }
     else q++;
    }
    
   }
   if(IU[i]=0)IU[i]=q+1;
  }

   k=0;
   q=0;
   for(j=0;j<N-1;j++)
    for(i=j+1;i<N;i++)
    {
     //按列存储A中的下三角非零元素的值//
     if(A[i][j]!=0)
     {
      L[k]=A[i][j];
      
     //按列存储A中下三角非零元素的行号//
      IL[k]=i;
      k++;
     //存储A的下三角部分每列第一个非零元在L中的位置(首地址)//
      if(JL[j]=NULL)
      {
       JL[j]=1+q;
       q++;
      }
      
     }
     JL[j]=q;
    }
    for(i=0;i<N;i++)
     D[i]=A[i][i];
    cout<<"输入U的值"<<endl;

    for(k=0;k<N-1;k++)
     cout<<U[k]<<endl;
    
    cout<<"输入JU的值"<<endl;
    for(k=0;k<N-1;k++)
     cout<<JU[k]<<endl;

    cout<<"输入IU的值"<<endl;

    for( i=0;i<N;i++)
     cout<<IU[i]<<endl;

}

void main()
{
int B[N][N];
for(int i=0;i<N;i++)
{
 for(int j=0;j<N;j++)
 {
  cin>>B[i][j];
 }
 cout<<endl;
}


trianglestore(B);
getchar();
}

文章评论 (评论内容只代表网友观点,与本站立场无关!)

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码

关于本站 - 网站帮助 - 广告合作 - 下载声明 - 友情连接 - 网站地图 -