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

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

改进的平方根法_解线性方程组的直接解法

标签:计算方法实验

#include 
#include
const int maxn = 15;int main(){ double a[maxn][maxn], b[maxn], y[maxn], x[maxn], l[maxn][maxn], d[maxn]; int n, sum; freopen("sqrt.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]); } */ for(int i = 1; i <= n; i++){ //分解: A = LDL^T sum = 0; for(int j = 1; j <= i - 1; j++){ for(int k = 1; k <= j - 1; k++) sum += (d[k] * l[i][k] * l[j][k]); l[i][j] = (a[i][j] - sum) / d[j]; } sum = 0; for(int k = 1; k <= i - 1; k++) sum += (d[k] * l[i][k] * l[i][k]); d[i] = a[i][i] - sum; } for(int i = 1; i <= n; i++){ //求y: L(DL^Tx) = b即Ly = b sum = 0; for(int k = 1; k <= i - 1; k++) sum += (l[i][k] * y[k]); y[i] = b[i] - sum; } for(int i = n; i >= 1; i--){ //求x: L^Tx = D^-1b sum = 0; for(int k = i + 1; k <= n; k++) sum += (l[k][i] * x[k]); x[i] = y[i] / d[i] - sum; } for(int i = 1; i <= n; i++) printf("x%d = %10f\n", i, x[i]); return 0;}

数据文件

input
实验结果
output

你可能感兴趣的文章
Nginx的平滑重启和平滑升级
查看>>
大型互联网站解决海量数据的常见策略
查看>>
好多东西还是看官网的比较好... MySQL 5.1 Server System Variables
查看>>
chattr
查看>>
/etc/sysctl.conf 调优 & 优化Linux内核参数
查看>>
C代码阅读工具---calltrer
查看>>
网站加速--服务器编写篇
查看>>
MySQL性能优化的21个最佳实践
查看>>
mysql 从文件导入sql 乱码问题...
查看>>
推荐使用percona版mysql
查看>>
大文件重定向和管道的效率对比
查看>>
Tair ldb(leveldb存储引擎)实现介绍
查看>>
通过apache/nginx禁止访问.svn目录
查看>>
C++性能优化技术导论
查看>>
SQL-92定义的errorcode 通过PDO什么的返回的值~
查看>>
linux 终端控制 颜色/位置 man console_codes
查看>>
深入了解php底层机制
查看>>
打开general_log 记录所有的sql
查看>>
原来打补丁是这么玩儿。。。diff patch
查看>>
51cto 均衡负载专题 收藏
查看>>