doolittle.cpp

来自「用doolittle分解法(非选主元)解用户输入的线性方程组。若无法解」· C++ 代码 · 共 53 行

CPP
53
字号
#include <iostream.h>
double **doolittle1(double **p1,int n)
{
	int k,i,j,t;
	double **A=p1;
	for(k=1;k<=n;k++)
	{
		double sum=0;
		for (j=k;j<=n;j++)
		{
			for(t=1;t<k;t++)
			   sum+=A[k][t]*A[t][j];
			A[k][j]=A[k][j]-sum;
		}
		sum=0;
		for (i=k+1;i<=n&&k<n;i++)
		{
			for(t=1;t<k;t++)
				sum+=A[i][t]*A[t][k];
			if(!A[k][k]) 
				return 0;
			A[i][k]=(A[i][k]-sum)/A[k][k];
		}
	}
	return A;
}
double *doolittle2(double **p1,double *p2,int n)
{
	int i,t;
	double **A=p1,*B=p2;
	for(i=2;i<=n;i++)
	{
		double sum=0;
		for(t=1;t<i;t++)
			sum+=A[i][t]*B[t];
		B[i]=B[i]-sum;
	}
	B[n]=B[n]/A[n][n];
	for (i=n-1;i>0;i--)
	{
		double sum=0;
		for (t=i+1;t<=n;t++)
			sum+=A[i][t]*B[t];
		B[i]=(B[i]-sum)/A[i][i];
	}
	return B;
}
	



		

⌨️ 快捷键说明

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