博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
超松驰迭代法SOR_解线性方程组的迭代法
阅读量:4156 次
发布时间:2019-05-26

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

超松驰迭代法SOR_解线性方程组的迭代法

标签:计算方法实验

#include 
#include
#define maxn 3int main(){ double a[maxn][maxn + 1], x[maxn] = {
0}; double eps = 1e-9, w = 1.05; int n, k, kmax = 100; freopen("gauss.txt", "r", stdin); scanf("%d", &n); for(int i = 0; i < n; i++) for(int j = 0; j < n + 1; j++) scanf("%lf", &a[i][j]); //for(int i = 0; i < n; i++) //{
//for(int j = 0; j < n + 1; j++) printf("%-15f", a[i][j]); //printf("\n"); //} for(k = 0; k < kmax; k++) { double norm = 0; for(int i = 0; i < n; i++) { double x0 = x[i]; double sum = 0; for(int j = 0; j < n; j++) if(j != i) sum += a[i][j] * x[j]; /// x[i] = (1 - w) * x0 + (a[i][n] - sum) / a[i][i]; ///w松弛因子 if(fabs(x[i] - x0) > norm) norm = fabs(x[i] - x0); //norm计算范数 } printf("\nk = %2d x = ", k + 1); for(int i = 0; i < n; i++) printf("%-15f", x[i]); if(norm < eps) break; } if(k < kmax) { printf("\n\nk = %d\n", k + 1); for(int i = 0; i < n; i++) printf("x%d = %-15f\n", i + 1, x[i]); } else printf("\n\nfailed\n"); return 0;}

数据文件

input
实验结果
output

你可能感兴趣的文章
MySQL关键字的些许问题
查看>>
浅谈HTML
查看>>
css基础
查看>>
Servlet进阶和JSP基础
查看>>
servlet中的cookie和session
查看>>
过滤器及JSP九大隐式对象
查看>>
软件(项目)的分层
查看>>
【Python】学习笔记——-7.0、面向对象编程
查看>>
【Python】学习笔记——-7.2、访问限制
查看>>
【Python】学习笔记——-7.3、继承和多态
查看>>
【Python】学习笔记——-7.5、实例属性和类属性
查看>>
git中文安装教程
查看>>
虚拟机 CentOS7/RedHat7/OracleLinux7 配置静态IP地址 Ping 物理机和互联网
查看>>
Jackson Tree Model Example
查看>>
常用js收集
查看>>
如何防止sql注入
查看>>
springmvc传值
查看>>
在Eclipse中查看Android源码
查看>>
Android使用webservice客户端实例
查看>>
[转]C语言printf
查看>>