expm.c

来自「C语言实现的矩阵的常用计算!包括:矩阵乘法」· C语言 代码 · 共 36 行

C
36
字号
void      expm(
			       Matrix   A,
			       Matrix   B,
			       int      m)
{
          Matrix     AT,s;
		  int        i,j;
		  double     k;
          
		  for(i=0;i<m;i++)
			  for(j=0;j<m;j++)
			  {
			      if((i-j)==0)
				  {s[i][j]=1;AT[i][j]=1;}
				  else
				  {s[i][j]=0;AT[i][j]=0;}
			  }                            //产生单位阵
			        
		  for(i=1;i<=50;i++)
		  {
			  MMmul(A,AT,AT,m,m,m,m);
			  k=(double)i;
			  MNmul(AT,1/k,AT,m,m);
			  MMadd(s,AT,s,m,m,m,m);
			  
		      if(judgement(AT,m,m)==0)
				  break;
		  }                                  //求矩阵exp(AT)
		  for(i=0;i<m;i++)
			  for(j=0;j<m;j++)
				  B[i][j]=s[i][j];
			 
			  

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?