📄 guass_band_good.c
字号:
#include "stdio.h"
void guass_band(double a[6][4],double b[6],int n)
{
int m,l,j;
double mi,d,f;
double min(double a,double b);
for(m=0;m<5;m++)
{
d=min(n-m-1,4-1);
for(l=1;l<=d;l++)
{
mi=a[m][l]/a[m][0];
b[m+l]=b[m+l]-b[m]*mi;
for(j=0;j<=4-l-1;j++)
a[m+l][j]=a[m+l][j]-mi*a[m][j+l];
}
}
b[n-1]=b[n-1]/a[n-1][0];/*回代*/
for(m=n-2;m>=0;m--)
{
f=min(n-1-m,3);
for(j=1;j<=f;j++)
b[m]=b[m]-a[m][j]*b[m+j];/*求和*/
b[m]=b[m]/a[m][0];
}
}
main()
{
int i;
static double a[6][4]=
{
{5,-3,2,0,},
{8,-3,2,4,},
{8,-3,0,0},
{7,-2,1,0},
{7,-2,0,0},
{4,0,0,0}};
static double b[6]={6,21,0,14,22,3};
guass_band(a,b,6);
printf("带状矩阵等带宽存储高斯线性方程组解法:\n");
for (i=0;i<=5;i++)
printf("x(%d)=%e\n",i,b[i]);
}
double min(double a,double b)
{
double c;
if(a>=b)
c=b;
else
c=a;
return c;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -