使用列主元消元法解方程组 c语言代码
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
for(i=0;i<N;i++)
{
for(j=0;j<N+1;j++)
printf("%2.1f ",A[i][j]);
printf("\n");
}
/*
回带过程
*/
x[N-1]=A[N-1][N]/A[N-1][N-1];
for(i=N-2;i>0 || i==0;i--)
{
for(j=N-1;j>i;j--)
X=X+A[i][j]*x[j];
x[i]=(A[i][N]-X)/A[i][i];
X=0;
}
/*
将方程的解输出
*/
printf("该方程组的解依次为:\n");
for(i=0;i<N;i++){
printf("x[%d]=%2.1f ",i+1,x[i]);
}
}
/*
计算最大值函数
*/
float max(float *y){
if (A[i][i]!=ma && A[k][i]==ma && ma!=0)
{
for (h=0;h<N+1;h++)
{
t=A[i][h];
A[i][h]=A[k][h];
A[k][h]=t;
}
}
}
else
{ printf("A是非奇异矩阵!\n");
break;
}
/*消去过程*/
for (m=i+1;m<N;m++)
M[m]=A[m][i]/A[i][i];
for (n=i+1;n<N;n++)
{
for (z=0;z<N+1;z++)
A[n][z]=A[n][z]-M[n]*A[i][z];
}
for (m=0;m<N;m++)
M[m]=0;
}
/*输出三角矩阵*/
printf("通过高斯列主元消去法化成的上三角曾广矩阵是:\n");
使用列主元消元法解方程组c语言代码
# include<stdio.h>
# include<math.h>
# define N 3
main(){
int i,j,k,h,s,m,n,z;
float max(float *y);
float A[N][N+1],B[N],ma,t,M[N]={0},X;
float x[N];
int w;
float max=y[0];
for (w=0;w<N;w++)
if (fabs(y[w])>fabs(max))
max=y[w];
return max;
}
printf("\n");
}
/*正消过程*/
for (i=0;i<N-1;i++)
{
/*找出每行最大的值*/
for (j=i;j<N;j++)
B[j-i]=A[j][i];
ma=max(B);
for (s=0;s<N;s++)
B[s]=0;
/*交换最大值行和当前行*/
if(ma!=0){
for (k=i;k<N;k++)
/*输入系数矩阵*/
for(i=0;i<N;i++)
for(j=0;j<N+1;j++)
scanf("%f",&A[i][j]);
printf("向命令窗口输入的曾广矩阵是:\Biblioteka Baidu");
for(i=0;i<N;i++)
{
for(j=0;j<N+1;j++)
printf("%2.1f ",A[i][j]);
{
for(j=0;j<N+1;j++)
printf("%2.1f ",A[i][j]);
printf("\n");
}
/*
回带过程
*/
x[N-1]=A[N-1][N]/A[N-1][N-1];
for(i=N-2;i>0 || i==0;i--)
{
for(j=N-1;j>i;j--)
X=X+A[i][j]*x[j];
x[i]=(A[i][N]-X)/A[i][i];
X=0;
}
/*
将方程的解输出
*/
printf("该方程组的解依次为:\n");
for(i=0;i<N;i++){
printf("x[%d]=%2.1f ",i+1,x[i]);
}
}
/*
计算最大值函数
*/
float max(float *y){
if (A[i][i]!=ma && A[k][i]==ma && ma!=0)
{
for (h=0;h<N+1;h++)
{
t=A[i][h];
A[i][h]=A[k][h];
A[k][h]=t;
}
}
}
else
{ printf("A是非奇异矩阵!\n");
break;
}
/*消去过程*/
for (m=i+1;m<N;m++)
M[m]=A[m][i]/A[i][i];
for (n=i+1;n<N;n++)
{
for (z=0;z<N+1;z++)
A[n][z]=A[n][z]-M[n]*A[i][z];
}
for (m=0;m<N;m++)
M[m]=0;
}
/*输出三角矩阵*/
printf("通过高斯列主元消去法化成的上三角曾广矩阵是:\n");
使用列主元消元法解方程组c语言代码
# include<stdio.h>
# include<math.h>
# define N 3
main(){
int i,j,k,h,s,m,n,z;
float max(float *y);
float A[N][N+1],B[N],ma,t,M[N]={0},X;
float x[N];
int w;
float max=y[0];
for (w=0;w<N;w++)
if (fabs(y[w])>fabs(max))
max=y[w];
return max;
}
printf("\n");
}
/*正消过程*/
for (i=0;i<N-1;i++)
{
/*找出每行最大的值*/
for (j=i;j<N;j++)
B[j-i]=A[j][i];
ma=max(B);
for (s=0;s<N;s++)
B[s]=0;
/*交换最大值行和当前行*/
if(ma!=0){
for (k=i;k<N;k++)
/*输入系数矩阵*/
for(i=0;i<N;i++)
for(j=0;j<N+1;j++)
scanf("%f",&A[i][j]);
printf("向命令窗口输入的曾广矩阵是:\Biblioteka Baidu");
for(i=0;i<N;i++)
{
for(j=0;j<N+1;j++)
printf("%2.1f ",A[i][j]);