📄 gauss.txt
字号:
void gauss(double **a,double *b,double *x,int n)
{
int i,j,k,ik;
double mik,temp;
for(k=0;k<n;k++)
{
mik=-1;
for(i=k;i<n;i++)
if(ABS(a[i][k])>mik)
{
mik=ABS(a[i][k]);
ik=i;
}
for(j=k;j<n;j++)
SWAP(a[ik][j],a[k][j]);
SWAP(b[k],b[ik]);
b[k]/=a[k][k];
for(i=n-1;i>=k;i--)
a[k][i]/=a[k][k];
for(i=k+1;i<n;i++)
{
b[i]-=a[i][k]*b[k];
for(j=n-1;j>=k;j--)
a[i][j]-=a[i][k]*a[k][j];
}
}
for(i=n-1;i>=0;i--)
{
x[i]=b[i];
for(j=i+1;j<n;j++)
x[i]-=a[i][j]*x[j];
}
}
VC-高斯消去法,求分析,那个*b是干啥的
#include <stdio.h>
#include <math.h>
#define N 3/*方程阶数*/
void myprintf(double a[][N],double *b);/*打印运算矩阵a,b*/
void hdai(double a[][N],double *b);/*回代求解*/
void lzyxq(double a[][N],double *b);/*高斯变换*/
void lzy(double a[][N],double *b,int k);/*行变换*/
/*主函数*/
void main()
{
double a[N][N]={2,-1,3,2,0,2,4,2,5};
double b[N]={1,6,7};
lzyxq(a,b);
myprintf(a,b);
hdai(a,b);
}
/*打印运算矩阵a,b*/
void myprintf(double a[][N],double *b)
{
int i,j;
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
{
printf("%4.2f",a[j]);
if(j+1<N)
printf("X%d+",j+1);
else
printf("X%d=",j+1);
}
printf("%4.2f\n",b);
printf("\n\n");
}
}
/*高斯变换*/
void lzyxq(double a[][N],double *b)
{
int i,j,k;
double l;
for(k=0;k<N-1;k++)
{
lzy(a,b,k);
for(i=k+1;i<N;i++)
{
l=a[k]/a[k][k];
b-=l*b[k];
for(j=k;j<N;j++)
{
a[j]-=l*a[k][j];
}
}
}
}
/*行变换*/
void lzy(double a[][N],double *b,int k)
{
int i,j,l,t;
double tempa,tempb;
t=k;
tempa=a[t][k];
for(i=k+1;i<N;i++)
{
if(fabs(tempa)<fabs(a[k]))
{
tempa=a[k];
t=i;
}
}
if(t!=k)
{
for(j=0;j<N;j++)
{
tempa=a[k][j];
a[k][j]=a[t][j];
a[t][j]=tempa;
}
tempb=b[k];
b[k]=b[t];
b[t]=tempb;
}
}
/*回代求解*/
void hdai(double a[][N],double *b)
{
double X[N];
int i,j;
double sum;
X[N-1]=b[N-1]/a[N-1][N-1];
for(i=N-2;i>=0;i--)
{
sum=0;
for(j=i+1;j<N;j++)
sum+=a[j]*X[j];
X=(b-sum)/a;
}
printf("resout:\n\n");
for(i=0;i<N;i++)
{
printf("X[%d]=%4.2f\n\n",i+1,X);
}
}
请问void myprintf(double a[][N],double *b);/*打印运算矩阵a,b*/
void hdai(double a[][N],double *b);/*回代求解*/
void lzyxq(double a[][N],double *b);/*高斯变换*/
void lzy(double a[][N],double *b,int k);/*行变换*/
这4行的*b有什么用呢?
本贴来自ZDNetChina中文社区 http://bbs.zdnet.com.cn ,本贴地址:http://bbs.zdnet.com.cn/viewthread.php?tid=872316
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -