我目前正在开发一个计算matrix exponential的函数。为此,我需要一个将X矩阵乘以n次的函数。下面的代码为n的小值提供了良好的结果,但是当增加此参数时,代码会产生错误的输出,可能是由于生成的数字很大。有没有解决方案或其他计算矩阵乘法的方法?
编辑:
代码:
void Multiply_Matrix_N_Times( double M[NL][NC], int L, int N )
{
double A[NL][NC];
double A_AUX[NL][NC];
int i, j;
for(i=0;i<L;i++)
{
for(j=0;j<L;j++)
{
if(i==j)
A[i][j]=1;
else
A[i][j]=0;
}
}
for(i=1;i<=N;i++)
{
Multiply_Matrices(A,M,A_AUX,L,L,L,L);
Copy_Matrix(A_AUX,A,L,L);
}
//printMatrix_REAL(A,L,L);
//getchar();
Copy_Matrix(A,M,L,L);
}