⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 列主高斯.cpp

📁 数值分析计算中的列主高斯消去法求解
💻 CPP
字号:
#include <iostream.h>

#include <math.h>

#include <iomanip.h>

#define length 9

void fun(double a[length][length],double b[length])

{

	int i,j,k,i0;

	double temp;

	/*比较出列主元及交换行,并进行消元*/

	for(k=0;k<length;k++)

		{

		 temp=fabs(a[k][k]);

		 i0=k;

		 for(i=k+1;i<length;i++)

			{

			 if(fabs(a[i][k])>temp) 

				{

				 temp=fabs(a[i][k]);

				 i0=i;

				}

			}

		 if(i0!=k) /*io作为标志位指示需交换行*/

			{

			 for(j=0;j<length;j++)

				{

				 temp=a[k][j];a[k][j]=a[i0][j];a[i0][j]=temp;

				}

			 temp=b[k];b[k]=b[i0];b[i0]=temp;

			}/*用temp来存放所有的中间变量*/

		 for(i=k+1;i<length;i++)

			{

			 for(j=k+1;j<length;j++)

				{

				 a[i][j]=a[i][j]-a[i][k]/a[k][k]*a[k][j];

				}

			 b[i]=b[i]-a[i][k]/a[k][k]*b[k];

			}

		}

	/*写出解向量*/

	b[length-1]=b[length-1]/a[length-1][length-1];

	for(i=length-2;i>=0;i--)

		{

		 for(j=length-1;j>i;j--)

			{

			 b[i]=b[i]-a[i][j]*b[j];

			}

		 b[i]=b[i]/a[i][i];

		} /*用b[]来存放解向量*/

}

void main()

{

double R[length][length]={{31,-13,0,0,0,-10,0,0,0},

				{-13,35,-9,0,-11,0,0,0,0},

				{0,-9,31,-10,0,0,0,0,0},

				{0,0,-10,79,-30,0,0,0,-9},

				{0,0,0,-30,57,-7,0,-5,0},

				{0,0,0,0,-7,47,-30,0,0},

				{0,0,0,0,0,-30,41,0,0},

				{0,0,0,0,-5,0,0,27,-2},

				{0,0,0,-9,0,0,0,-2,29}};

double V[length]={-15,27,-23,0,-20,12,-7,7,10};

int i;

fun(R,V);

for(i=0;i<length;i++)

{cout<<setprecision(5)<<V[i]<<endl;}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -