1 / 3
文档名称:

现代数值计算方法代码.doc

格式:doc   大小:15KB   页数:3页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

现代数值计算方法代码.doc

上传人:taoapp 2021/11/26 文件大小:15 KB

下载得到文件列表

现代数值计算方法代码.doc

相关文档

文档介绍

文档介绍:高斯列主消元:
#include<>
#include<>
#define NUMBER 20
#define Esc 0x1b
#define Enter 0x0d
float A[NUMBER][NUMBER+1] ,ark;
int flag,n;
float max(int k); //声明
main()
{
float x[NUMBER]; //此数组用于存放方程解
int r,k,i,j;
char celect;
printf("\n\n用Gauss列主元消元法解线性方程组");
printf("\n\.");
printf("\n\.");
celect=getch();
if(celect==Esc)
exit(0);
if(celect==Enter)
{
printf("\n\n 输入方程组的维数:n=");
scanf("%d",&n);
printf(" \n\n现在输入系数矩阵A和向量b:");
printf("\n提示:");
printf("\n *****你只需要将每一行中的系数和向量一次性输入*****");
printf("\n ****************数之间用空格格开******************");
printf("\n ***************输完后回车确定即可!!***************");
for(i=1;i<=n;i++)
{
printf("\n\n请输入a%d1--a%d%d系数和向量b%d:",i,i,n,i);
for(j=1;j<=n+1;j++) //将刚才输入的数存入数组
scanf("%f",&A[i][j]);
}
for(k=1;k<=n-1;k++) //k即指第k列,也指第k行
{
ark=max(k);//比较第k列的系数 把最大的数赋给ark
if(ark==0) //判定方程是否为线性方程,即是否合法
{
printf("\n\n此方程组不合法!");message();
}
else if(flag!=k)//k不是最大的系数,换行
exchange(flag,k);
for(i=k+1;i<=n;i++)
for(j=k+1;j<=n+1;j++)
A[i][j]=A[i][j]-A[k][j]*A[i][k]/A[k][k];
}
x[n]=A[n][n+1]/A[n][n]; //求得Xn的解
for( k=n-1;k>=1;k--) //将Xn回代
{