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

📄 chase.cpp

📁 本人的计算方法课程作业
💻 CPP
字号:
//chase.cpp--追赶法解三对角方程组
#include<iostream>
#include<cmath>
using namespace std;
const int ROW=20;
void print_root(float x[]);
void read_jz(float jz[],int l,int m,int n,char ch);
int main()
{
	float x[ROW],a[ROW],b[ROW],c[ROW],f[ROW];
	int i,k;
	cout<<"输出三对角矩阵T和f矩阵的各元素:"<<endl;
	read_jz(a,1,ROW-1,-1,'a');
	read_jz(b,0,ROW-1,4,'b');
	read_jz(c,0,ROW-2,-1,'c');        //以上三行输出三对角矩阵的系数
	f[0]=3;
	f[ROW-1]=3;
	for(i=2;i<=ROW-1;i++)
		f[i-1]=2;
	cout<<"f[20]:"<<endl;             //输出f矩阵
	for(i=0;i<=ROW-1;i++)
		cout<<f[i]<<" ";
	cout<<endl;                       
	x[0]=f[0];
	for(k=1;k<=ROW-1;k++)             //消去过程
	{
		a[k]=a[k]/b[k-1];
		b[k]=b[k]-a[k]*c[k-1];
		x[k]=f[k]-a[k]*x[k-1];
	}
	x[ROW-1]=x[ROW-1]/b[ROW-1];
	for(k=ROW-2;k>=0;k--)             //回代过程
	{
		x[k]=(x[k]-c[k]*x[k+1])/b[k];
	}
    print_root(x);                        //输出三对角方程组Tx=f的解
	return 0;
}
//read_jz()用于矩阵输出
void read_jz(float jz[],int l,int m,int n,char ch)
{
	int i;
	cout<<ch<<"["<<m-l+1<<"]:"<<endl;
	for(i=l;i<=m;i++)
	{
		cout<<n<<" ";
		jz[i]=n;                           //系数矩阵赋值
	}
	cout<<endl;
}
//print_root()输出方程组的解
void print_root(float x[])
{
    int i;
	cout<<"由此,得三对角方程组的解为:"<<endl;;
	for(i=0;i<ROW;i++)
		cout<<x[i]<<" ";
	cout<<endl;
}

⌨️ 快捷键说明

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