📄 chasingmethod.c.txt
字号:
void chasingMethod(Type** inMatrixArr,Type* bList,Type* xAnsList,int size)
{
/*Core think of this algorithm,this algorithm is just a special version
of the LUPationMethod:
matrix_L*yAnsList=bList;
matrix_U*xAnsList=yAnsList;
*/
Type* listA,* listB,* listC;/*to crack the in matrix in three one
demision list*/
Type* listAlpha,* listBeta;/*The tween list for resolve the problem*/
Type* yAnsList;
int i,j;
/*pointer data assertion*/
assertF(inMatrixArr!=NULL,"in LUPationMethod,matrixArr is NULL\n");
assertF(bList!=NULL,"in LUPationMethod,bList is NULL\n");
assertF(xAnsList!=NULL,"in LUPationMethod,xAnsList is NULL\n");
/*The Assertion of the pass in matrixs format.*/
for(i=0;i<size;i++)
for(j=i;j<size;j++)
if(j-i>1)
assertF(inMatrixArr[i][j]==0,"In chasingMethod,the pass in matrix format is not correct\n");
/*Mem Apply*/
listArrMemApply(&listA,size);
listArrMemApply(&listB,size);
listArrMemApply(&listC,size);
listArrMemApply(&listAlpha,size);
listArrMemApply(&listBeta,size);
listArrMemApply(&yAnsList,size);
/*locate the inMatrixArr data into correct position*/
listB[0]=inMatrixArr[0][0];
listC[0]=inMatrixArr[0][1];
for(i=1;i<size-1;i++)
{
listA[i]=inMatrixArr[i][i-1];
listB[i]=inMatrixArr[i][i];
listC[i]=inMatrixArr[i][i+1];
}
listA[size-1]=inMatrixArr[size-1][size-2];
listB[size-1]=inMatrixArr[size-1][size-1];
/*main program of the chasingMethod*/
listAlpha[0]=listB[0];
listBeta[0]=listC[0]/listAlpha[0];
for(i=1;i<size-1;i++)
{
listAlpha[i]=listB[i]-listA[i]*listBeta[i-1];
listBeta[i]=listC[i]/listAlpha[i];
}
listAlpha[i]=listB[i]-listA[i]*listBeta[i-1];
/*To get the yAnsList*/
yAnsList[0]=bList[0]/listAlpha[0];
for(i=1;i<size;i++)
yAnsList[i]=(bList[i]-listA[i]*yAnsList[i-1])/listAlpha[i];
showArrListFloat(yAnsList,0,size);
/*To get the xAnsList*/
xAnsList[size-1]=yAnsList[size-1];
for(i=size-2;i>=0;i--)
xAnsList[i]=yAnsList[i]-listBeta[i]*xAnsList[i+1];
/*Mem Free*/
free(listA);
free(listB);
free(listC);
free(listAlpha);
free(listBeta);
free(yAnsList);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -