资源简介

北航数值分析大作业 高斯/sor迭代法.zip

资源截图

代码片段和文件信息

#include 
using namespace std;
int main()
{
void print(double** pa double* pb const int n);//打印增广矩阵
int print(double* x const int n int c);//打印向量并修改迭代次数
int n;//系数矩阵的行数/列数
cout << “请输入方程的个数“ << “\n默认情况下,方程个数等于变量个数\n“;
cin >> n;
int flag = 1;//标志位,显示该算法是否成功
//动态分配数组
double **a = new double *[n];//系数矩阵
double *b = new double[n];//方程右端向量
double *x = new double[n];//解向量
double *y = new double[n];//解向量
for (int i = 0; i < n; ++i)
{
a[i] = new double[n];
}
//输入并展示相关参数
for (int i = 0; i != n; ++i)
{
cout << “请按顺序输入第“ << i + 1 << “个方程的系数“ << endl;
for (int j = 0; j != n; ++j)
{
cin >> a[i][j];
}
}
for (int i = 0; i != n; ++i)
{
cout << “请按输入第“ << i + 1 << “个方程右端的值“ << endl;
cin >> b[i];
}
print(a b n);
//迭代
for (int i = 0; i != n; ++i)//判断系数矩阵是否满足条件
{
if (!(a[i][i]))
{
flag = 0;
break;
}
}
int c = 0;//c为迭代次数
if (flag)
{
double sum f1 e;//sum为求和中间变量,f1为迭代前后向量的差的第一范数,e为误差
e = 0.00001;
for (int i = 0; i < n; ++i)//迭代初始向量,此处设为0向量
{
y[i] = 1;
}
cout << “迭代序列为:“ << endl;
c = print(y n c);
do
{
//x = y;
for (int i = 0; i < n; ++i)//迭代初始向量,此处设为0向量
{
x[i] = y[i];
}
for (int i = 0; i != n; ++i)
{
sum = 0;
for (int j = 0; j != i; ++j)
{
sum += a[i][j] * y[j];
}
for (int j = i+1; j != n; ++j)
{
sum += a[i][j] * x[j];
}
y[i] = (b[i] - sum) / a[i][i];
}
c = print(y n c);
f1 = 0;
for (int i = 0; i != n; ++i)
{
f1 = abs(x[i] - y[i]) > f1 ? abs(x[i]-y[i]) : f1;
}
} while ((f1 > e) && (c<1000));
}
if ((!flag) || (c == 1000))
{
     cout << “该算法失效“ << endl;
return 0;
}
cout << “解向量为“ << endl;
for (int i = 0; i != n; ++i)
cout << y[i] << “\t“;
cout << “\n输入1结束程序“ << endl;
int end;
cin >> end;
if (end == 1) return 1;
return 1;

}
void print(double** pa double* pb const int n)//打印增广矩阵
{
cout << “增广矩阵:“ << endl;
for (int i = 0; i != n; ++i)
{
for (int j = 0; j != n; ++j)
{
cout << pa[i][j] << “\t“;
}
cout << pb[i] << endl;
}
}
int print(double* x const int n int c)//打印向量并修改迭代次数
{
cout << “第“ << c << “次迭代\t“;
for (int i = 0; i != n; ++i)
{
cout << x[i] << “\t“;
}
cout << endl;
return ++c;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-10-22 20:52  迭代法\
     目录           0  2019-10-22 20:52  迭代法\gauss-seidel\
     目录           0  2019-11-01 21:31  迭代法\gauss-seidel\Project1\
     目录           0  2019-11-01 18:21  迭代法\gauss-seidel\Project1\.vs\
     目录           0  2019-11-01 18:21  迭代法\gauss-seidel\Project1\.vs\Project1\
     目录           0  2019-11-03 22:03  迭代法\gauss-seidel\Project1\.vs\Project1\v15\
     文件       28160  2019-11-03 22:03  迭代法\gauss-seidel\Project1\.vs\Project1\v15\.suo
     文件     5058560  2019-11-03 22:03  迭代法\gauss-seidel\Project1\.vs\Project1\v15\Browse.VC.db
     目录           0  2019-11-01 18:21  迭代法\gauss-seidel\Project1\.vs\Project1\v15\ipch\
     目录           0  2019-11-01 18:21  迭代法\gauss-seidel\Project1\.vs\Project1\v15\ipch\AutoPCH\
     目录           0  2019-11-01 18:21  迭代法\gauss-seidel\Project1\.vs\Project1\v15\ipch\AutoPCH\aa5bd4361fbfa618\
     文件    30670848  2019-11-03 18:37  迭代法\gauss-seidel\Project1\.vs\Project1\v15\ipch\AutoPCH\aa5bd4361fbfa618\GAUSS-SEIDEL.ipch
     目录           0  2019-11-01 20:53  迭代法\gauss-seidel\Project1\Debug\
     文件       56320  2019-11-01 21:33  迭代法\gauss-seidel\Project1\Debug\Project1.exe
     文件      468480  2019-11-01 21:33  迭代法\gauss-seidel\Project1\Debug\Project1.ilk
     文件      692224  2019-11-01 21:33  迭代法\gauss-seidel\Project1\Debug\Project1.pdb
     目录           0  2019-11-01 21:33  迭代法\gauss-seidel\Project1\Project1\
     目录           0  2019-11-01 21:33  迭代法\gauss-seidel\Project1\Project1\Debug\
     文件         127  2019-11-01 21:33  迭代法\gauss-seidel\Project1\Project1\Debug\Project1.log
     目录           0  2019-11-01 21:33  迭代法\gauss-seidel\Project1\Project1\Debug\Project1.tlog\
     文件       17494  2019-11-01 21:33  迭代法\gauss-seidel\Project1\Project1\Debug\Project1.tlog\CL.read.1.tlog
     文件         548  2019-11-01 21:33  迭代法\gauss-seidel\Project1\Project1\Debug\Project1.tlog\CL.write.1.tlog
     文件         237  2019-11-01 21:33  迭代法\gauss-seidel\Project1\Project1\Debug\Project1.tlog\Project1.lastbuildstate
     文件        1246  2019-11-01 21:33  迭代法\gauss-seidel\Project1\Project1\Debug\Project1.tlog\cl.command.1.tlog
     文件        2336  2019-11-01 21:33  迭代法\gauss-seidel\Project1\Project1\Debug\Project1.tlog\link.command.1.tlog
     文件         714  2019-11-01 20:53  迭代法\gauss-seidel\Project1\Project1\Debug\Project1.tlog\link.delete.1.tlog
     文件        2790  2019-11-01 21:33  迭代法\gauss-seidel\Project1\Project1\Debug\Project1.tlog\link.read.1.tlog
     文件         510  2019-11-01 21:33  迭代法\gauss-seidel\Project1\Project1\Debug\Project1.tlog\link.write.1.tlog
     文件       67408  2019-11-01 21:33  迭代法\gauss-seidel\Project1\Project1\Debug\gauss-seidel.obj
     文件       67234  2019-11-01 20:53  迭代法\gauss-seidel\Project1\Project1\Debug\gauss-seidel.obj.enc
     文件      257024  2017-11-07 22:53  迭代法\gauss-seidel\Project1\Project1\Debug\vc120.idb
............此处省略62个文件信息

评论

共有 条评论