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

📄 doolittle.cpp

📁 数值分析的Doolittle分解算法
💻 CPP
字号:
#include <iostream.h>
#include <iomanip.h>
const int N=4;

void main()
{
	int i,j,k;
    double record1=0,record2=0,note=0;
	double a[N][N+1],c[N];
	cout<<"please input matrix a"<<endl;
	for(i=0;i<N;i++)
		for(j=0;j<N+1;j++)
          cin>>a[i][j];
	for(j=1;j<N;j++)
		a[j][0]=a[j][0]/a[0][0];
	for(i=1;i<N;i++)
	{	
	   	for(j=i;j<N+1;j++)	
		{
			 for(k=0;k<i;k++)
			
				 record1=record1+a[i][k]*a[k][j];
		 
			  a[i][j]=a[i][j]-record1;
		     record1=0;
		}    
		for(j=i+1;j<N;j++)
		{
			for(k=0;k<i;k++)
                record2=record2+a[j][k]*a[k][i];
			
			a[j][i]=(a[j][i]-record2)/a[i][i];
		    record2=0;
		}
	}
	
	cout<<"after doolittle method's operation ,the character matrix is:"<<endl;
	for(i=0;i<N;i++)
	{
		for(j=0;j<N+1;j++)
			cout<<a[i][j]<<setw(5);
	cout<<endl;
	}
    cout<<endl;
	 
	c[N-1]=a[N-1][N]/a[N-1][N-1];

	for(k=N-2;k>=0;k--)
	{
		for(j=k+1;j<N;j++)
			note=note+a[k][j]*c[j];
		
		c[k]=(a[k][N]-note)/a[k][k];
        note=0;
    }
	/*for(i=0;i<N;i++)
		c[i]=a[i][i];*/
	cout<<"the result is:"<<endl;
	for(i=0;i<N;i++)
    {
		cout<<setw(2)<<"X"<<i+1<<setw(2)<<"="<<setw(3)<<c[i]<<endl;
        cout<<endl;
	}
}

⌨️ 快捷键说明

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