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

📄 matrix.cpp

📁 数值计算中追赶法的C++实现算法
💻 CPP
字号:
#include"Matrix.h"
#include<iostream.h>
#include<fstream.h>
A::A(int temp_n){
	if (temp_n<=1) {
		cout<<"构造矩阵失败."<<endl;
	
	}
	n=temp_n;
	a=new double[n];
	b=new double[n];
	c=new double[n];
	f=new double[n];
	X=new double[n];
	Y=new double[n];
	L=new double[n];
	U=new double[n];

	
}
int A::setA(double *temp_a,double *temp_b,double *temp_c,double *temp_f){
	for(int i=2;i<=n;i++){
		a[i]=*(temp_a+i-2);
	}
	for(i=1;i<=n;i++){
		b[i]=temp_b[i-1];
	}
	for(i=1;i<=n-1;i++){
		c[i]=temp_c[i-1];
	}
	for(i=1;i<=n;i++){
		f[i]=temp_f[i-1];
	}
	return 1;
}
int A::getLU(){
	if(n<1) return 0;
	else{
		U[1]=b[1];
		for (int i=2;i<n+1;i++){
			L[i]=a[i]/U[i-1];
			U[i]=b[i]-L[i]*c[i-1];
		}
	}
	return 1;
}	
int A::getY(){
	Y[1]=f[1];
	for (int i=2;i<=n;i++){
		Y[i]=f[i]-L[i]*Y[i-1];
	}
	return 1;
}
double A::getX(){
	X[n]=Y[n]/U[n];
	for (int i=n-1;i>=1;i--){
		X[i]=(Y[i]-c[i]*X[i+1])/U[i];
	}
	return X[1];
}
void A::show(){
	ofstream ofile("compute.txt",ios::app);
	for(int i=1;i<=n;i++){
		ofile<<X[i]<<endl;
	}
	
	
}
int A::changef(){
	for(int i=2;i<=n-1;i++){
		f[i]=X[i];
	}
	return 1;
}

⌨️ 快捷键说明

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