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

📄 triangle.cpp

📁 数值分析的实验报告
💻 CPP
字号:
#include<iostream>
using namespace std;
#define N 2
#define MAX 100
void triangle(double (*p)[N],double (*q)[N],double (*r)[N]);
void triangle(double (*A)[N],double (*L)[N],double (*U)[N])
{
	int i,r,k;
	for(i=0;i<N;i++)							  //figure out L and U
	{
		U[0][i]=A[0][i];
		L[i][0]=A[i][0]/U[0][0];
	}
	for(r=1;r<N;r++)
	{
		for(i=r;i<N;i++)
		{
			double sum=0;
			for(k=0;k<r;k++)
				sum+=L[r][k]*U[k][i];
			U[r][i]=A[r][i]-sum;
		}
		for(i=r+1;i<N;i++)
		{
			if(r==N-1) continue;
			double sum=0;
			for(k=0;k<r;k++)
				sum+=L[i][k]*U[k][r];
			L[i][r]=(A[i][r]-sum)/U[r][r];
		}
	}
	for(i=0;i<N;i++)
		for(r=0;r<N;r++)
		{
			if(i<r)
				L[i][r]=0;
			if(i==r)
				L[i][r]=1;
			if(i>r)
				U[i][r]=0;
		}
}

void initialnise(double (*p)[N],double *);
int main()
{
	double A[N][N],B[N],X[N];
	double L[N][N],U[N][N];
	int i;
	initialnise(A,B);
	triangle(A,L,U);	
	return 0;
}

void initialnise(double (*A)[N],double *B)
{
	int k;
	cout<<"Which exercise do you want to solve"<<endl;
	cout<<"1-exercise 1"<<endl;
	cout<<"2-exercise 2"<<endl;
	cout<<"3-exercise 3.1"<<endl;
	cout<<"4-exercise 3.2"<<endl;
	cout<<"5-exercise 3.3"<<endl;
	cin>>k;
	int i,j;
	switch (k)
	{
		case 1:	
			for(i=0;i<N;i++)						//exercise 1
			{
				B[i]=0;
				for(j=0;j<N;j++)
					A[i][j]=N-fabs(i-j);
			}
			B[0]=1;
		case 2:
			A[0][0]=2,A[0][1]=1,A[0][2]=0,A[0][3]=0;		//exercise 2
			A[1][0]=1,A[1][1]=2,A[1][2]=1,A[1][3]=0;
			A[2][0]=0,A[2][1]=1,A[2][2]=2,A[2][3]=1;
			A[3][0]=0,A[3][1]=0,A[3][2]=1,A[3][3]=2;
			B[0]=-7,B[1]=-5,B[2]=0,B[3]=-5;
		case 3:
			A[0][0]=6,A[0][1]=2,A[0][2]=-1;					//exercise 3.1
			A[1][0]=1,A[1][1]=4,A[1][2]=-2;
			A[2][0]=-3,A[2][1]=1,A[2][2]=4;
			B[0]=-3,B[1]=2,B[2]=4;
			B[0]=100,B[1]=-200,B[2]=345;
		case 4:
			A[0][0]=1,A[0][1]=0.8,A[0][2]=0.8;				//exercise 3.2
			A[1][0]=0.8,A[1][1]=1,A[1][2]=0.8;
			A[2][0]=0.8,A[2][1]=0.8,A[2][2]=1;
			B[0]=3,B[1]=2,B[2]=1;
			B[0]=5,B[1]=0,B[2]=-10;
		case 5:
			A[0][0]=1,A[0][1]=3;							//exercise 3.3
			A[1][0]=-7,A[1][1]=1;
			B[0]=4,B[1]=-6;
	}
	for(i=0;i<N-1;i++)
	{
		A[i][i]=-4;
		A[i][i+1]=1;
		A[i+1][i]=1;
		B[i]=-2;
	}
	A[N-1][N-1]=-4;
	B[0]=-3;
	B[N-1]=-3;
}

⌨️ 快捷键说明

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