博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
高斯列主元消去法_解线性方程组的直接解法
阅读量:4155 次
发布时间:2019-05-26

本文共 1732 字,大约阅读时间需要 5 分钟。

高斯列主元消去法_解线性方程组的直接解法

标签:计算方法实验

#include 
#include
const int maxn = 15;double a[maxn][maxn], b[maxn];int main(){ int n; freopen("gauss.txt", "r", stdin); //读入数据 scanf("%d", &n); for(int i = 1; i <= n; i++) { for(int j = 1; j <= n; j++) scanf("%lf", &a[i][j]); scanf("%lf", &b[i]); } /*打印数据文件 for(int i = 1; i <= n; i++) { for(int j = 1; j <= n; j++) printf("%10f", a[i][j]); printf("%10f\n", b[i]); } printf("\n"); */ for(int k = 1; k <= n - 1; k++) //n - 1列 { int column = k; double mainelement = a[k][k]; for(int i = k; i <= n; i++) //找主元素 if(fabs(a[i][k]) > mainelement) { mainelement = fabs(a[i][k]); column = i; } for(int j = k; j <= n; j++) //交换两行 { double atemp = a[k][j]; a[k][j] = a[column][j]; a[column][j] = atemp; } double btemp = b[k]; b[k] = b[column]; b[column] = btemp; for(int i = k + 1; i <= n; i++) //消元过程 { double Mik = a[i][k] / a[k][k]; for(int j = k; j <= n; j++) a[i][j] -= Mik * a[k][j]; b[i] -= Mik * b[k]; } } for(int i = 1; i <= n; i++) //经列主元高斯消去法得到的上三角阵(最后一列为常系数) { for(int j = 1; j <= n; j++) printf("%10f", a[i][j]); printf("%10f\n", b[i]); } printf("\n"); b[n] /= a[n][n]; //回代过程 for(int i = n - 1; i >= 1; i--) { double sum = 0; for(int j = i + 1; j <= n; j++) sum += a[i][j] * b[j]; b[i] = (b[i] - sum) / a[i][i]; } for(int i = 1; i <= n; i++) printf("x%d = %10f\n", i, b[i]); //小优化b[]->x[] return 0;}

数据文件

input
实验结果
output

你可能感兴趣的文章
linux tool objdump
查看>>
linux tool nm
查看>>
字节对齐
查看>>
把类成员函数封装成线程API所需要的函数
查看>>
HTTP Live Streaming直播(iOS直播)技术分析与实现
查看>>
Ribbon界面图标可以直接用PNG做透明图标
查看>>
向其他软件窗口、控件发送消息的方法
查看>>
word或者pdf文件全部保存为图片的方法
查看>>
VS2010下SQLite3生成lib库文件
查看>>
sqlite3的helloworld
查看>>
MFC下支持中文的SQLite3封装类使用
查看>>
简单高效的多线程日志类
查看>>
研华USB4711A采集卡高速中断模式采集总结
查看>>
从零起步CMFCToolBar用法详解
查看>>
CMFCRibbonStatusBar用法
查看>>
CMFCControlRendererInfo类的参数
查看>>
史上最详细MFC调用mapX5.02.26步骤(附地图测试GST文件)
查看>>
CMFCShellListCtrl使用方法
查看>>
mapnik的demo运行
查看>>
python支持下的mapnik安装
查看>>