⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test.cpp

📁 这是用于线性方程组求解的ILUK预处理算法的实现。在VC++编译通过。矩阵采用压缩稀疏行格式存储(CSR)
💻 CPP
字号:
#include "stdio.h"
#include"iluk.h"
int main()
{
	struct Distmatrix *dm;
	struct Preconmat  *precon;
	int i,j,m;
	double s;
	dm=(struct Distmatrix *)malloc(sizeof(struct Distmatrix));
	dm->ma=(double**)malloc(4*sizeof(double*));
	dm->ja=(int **)malloc(4*sizeof(int*));
	dm->nnzrow=(int *)malloc(4*sizeof(int*));
	precon=(struct Preconmat *)malloc(sizeof(struct Preconmat));
	precon->L=(FacLU *)malloc(sizeof(FacLU));
	precon->U=(FacLU *)malloc(sizeof(FacLU));
	for(i=0;i<3;i++)
	{
		dm->ma[i]=(double *)malloc(3*sizeof(double));
		dm->ja[i]=(int *)malloc(3*sizeof(int));
		dm->nnzrow[i]=3;
	}
	dm->ma[i]=(double *)malloc(2*sizeof(double));
	dm->ja[i]=(int *)malloc(2*sizeof(int));
	dm->nnzrow[i]=2;
	dm->dimension=4;	
	dm->ma[0][0]=4.0;
	dm->ma[0][1]=1.0;
	dm->ma[0][2]=2.0;
	dm->ma[1][0]=1.0;
	dm->ma[1][1]=3.0;
	dm->ma[1][2]=2.0;
	dm->ma[2][0]=1.0;
	dm->ma[2][1]=4.0;
	dm->ma[2][2]=2.0;
	dm->ma[3][0]=1.0;
	dm->ma[3][1]=3.0;

	dm->ja[0][0]=0;
	dm->ja[0][1]=1;
	dm->ja[0][2]=2;
	dm->ja[1][0]=0;
	dm->ja[1][1]=1;
	dm->ja[1][2]=3;
	dm->ja[2][0]=1;
	dm->ja[2][1]=2;
	dm->ja[2][2]=3;
	dm->ja[3][0]=0;
	dm->ja[3][1]=3;
	iluk(dm,precon,0);
	printf("The Low triangular part L:\n");
	for(i=0;i<4;i++)
	{
		for(j=0;j<precon->L->nnzrow[i];j++)
		{
			m=precon->L->ja[i][j]+1;
			s=precon->L->ma[i][j];
			printf("(%d,%d) entry is :%f\n",i+1,m,s);
		}
	}
	printf("\n\n");
	printf("The upper triangular part U:\n");
	for(i=0;i<4;i++)
	{
		for(j=0;j<precon->U->nnzrow[i];j++)
		{
			m=precon->U->ja[i][j]+1;
			s=precon->U->ma[i][j];
			printf("(%d,%d) entry is :%f\n",i+1,m,s);
		}
	}	
	getchar();
	return 0;
}

⌨️ 快捷键说明

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