资源简介
上次传的Jacobi迭代法解方程的资源忘了把这个代码传上去这次补上
代码片段和文件信息
/* 本程序是用Jacobi迭代法解方程组 */
/* 原方程 AX=b 迭代方程 X(k+1)=BoX(k)+f */
/* Bo=I-(D-1)A ;f=(D-1)b. (其中(D-1)表示D的逆) */
#include
# include
# include
# include
# define a_ii a[i*n+i]
# define a_jj a[j*n+j]
# define a_ij a[i*n+j]
# define a_ji a[j*n+i]
void ShuoMing()
{
system(“cls“);
printf(“\n\t* * * * * * * * * * * * * * * * * * * * * * * *\n“);
printf(“\t* *\n“);
printf(“\t* 使用说明 *\n“);
printf(“\t* ========================================= *\n“);
printf(“\t* *\n“);
printf(“\t* 本程序是 *\n“);
printf(“\t* 用 Jacobi 迭代法解方程组矩阵应 *\n“);
printf(“\t* 满足 Jacobi 迭代法收敛 *\n“);
printf(“\t* *\n“);
printf(“\t* 使用时: 系数矩阵 与 常数项 分开输入 *\n“);
printf(“\t* 输入系数矩阵时只能按行的顺序输入 *\n“);
printf(“\t* 即依次按a11a12...a1n顺序输完第一行 *\n“);
printf(“\t* 再依次输入第二行 依次类推直到第n行 *\n“);
printf(“\t* 提示输入迭代终止条件时输入的数据 *\n“);
printf(“\t* 必需大约或等于0 *\n“);
printf(“\t* 另外:为防止输入程序出现死循环迭代将在达到 *\n“);
printf(“\t* 10000000次时强行结束;由于各种原因可能 *\n“);
printf(“\t* 显示||Xn-X(n-1)||∞=1.#INF和X[i]=1.#INF *\n“);
printf(“\t* 更多详情参见 使用说明文档 *\n“);
printf(“\t* *\n“);
printf(“\t* 作者 E-mail 555exp@l63.com QQ 649990777 *\n“);
printf(“\t* * * * * * * * * * * * * * * * * * * * * * * *\n“);
printf(“\t\t请按任意键继续:“);
getch();system(“cls“);
}
double *Get_A(int n)
{
int ij;
double *a;
a=(double *)malloc(sizeof(double)*n*n);
if(a==NULL)
{
printf(“给系数矩阵分配存储空间失败 按任意建结束程序\n“);
getch();
exit(0);
}
printf(“\n请输入系数矩阵(按行的顺序)\n“);
fflush(stdin); /* 清除缓冲区的数据 */
for(i=0;i for(j=0;j scanf(“%lf“&a_ij);
return a;
} /* Get_A End */
double *Get_b(int n)
{
int i;
double *b;
b=(double *)malloc(sizeof(double)*n);
if(b==NULL)
{
printf(“给常数项分配存储空间失败 按任意建结束程序\n“);
getch();
exit(0);
}
printf(“请依次输入常数项\n“);
fflush(stdin); /* 清除缓冲区的数据 */
for(i=0;i scanf(“%lf“&b[i]);
return b;
- 上一篇:21天学通C++第8版源代码
- 下一篇:TFTP_C程序实现
评论
共有 条评论