openmpi雅可比迭代法_用雅可比迭代法求线性方程组的解的并行算法(MPI)
1 //=================================================================2 //Name : 使用雅可比迭代法求解线性方程组3 //Author : 袁冬(2107020046)4 //Copyright : 中国海洋大学5 //LastUpdate : 2007.10.186 //Develop Evrionment : Windows Server 2003 SP27 //+ Eclipse 3.3.1 + CDT 4.0.18 //+ MinGW 3.81 + GDB 6.69 //+ mpich2-1.0.6-win32-ia3210 //=================================================================11 12 //#define DEBUG 1//调试符号13 14 #defineTRUE 115 #defineFALSE 016 #definebool int17 18 #defineMAX_N 100//允许的最大未知数个数19 #defineMAX_A (MAX_N * MAX_N)//允许最大的系数的个数20 21 #defineMAX_ITERATION 10000//最大迭代次数22 #defineTOLERANCE 0.001//误差23 24 #include"mpi.h"25 #include26 #include27 28 intpID, pSize;//pID:当前进程ID,pSize:总的进程数29 intn, iteration=0;//n:未知数的个数,iternation:迭代的次数30 floatx[MAX_N], new_x[MAX_N], result_x[MAX_N];//x:表示上一次迭代的结果,new_x:表示这一次迭代的结果,result_x:表示归约之后得到的总的结果31 floata[MAX_N][MAX_N];//系数32 floatb[MAX_N];33 34 //输入35 voidinput(){36 37 inti, j;38 39 printf("The n is %d\n", n);40 fflush(stdout);41 42 //输入系数43 for(i=0; iMAX_ITERATION) printf(", that is out of the limit of iteration!");63 printf("\n");64 65 for(i=0; iTOLERANCE||x[i]-result_x[i]>TOLERANCE)76 returnFALSE;77 78 #ifdef DEBUG79 printf("TRUE From %d\n", pID);80 fflush(stdout);81 #endif82 83 //全部满足误差,返回TRUE84 returnTRUE;85 }86 87 //入口,主函数88 intmain(intargc,char*argv[]) {89 90 MPI_Status status;91 inti, j;92 floatsum;93 94 //初始化95 MPI_Init(&argc,&argv);96 MPI_Comm_rank(MPI_COMM_WORLD,&pID);97 MPI_Comm_size(MPI_COMM_WORLD,&pSize);98 99 //每个进程对应一个未知数100 n=pSize;101 102 //根进程负责输入103 if(!pID) input();104 105 //广播系数106 MPI_Bcast(a, MAX_A, MPI_FLOAT,0, MPI_COMM_WORLD);107 //广播b108 MPI_Bcast(b, MAX_N, MPI_FLOAT,0, MPI_COMM_WORLD);109 110 #ifdef DEBUG111 //打印a, b112 for(j=0; jMAX_ITERATION) {179 break;180 }181 }while(!tolerance());//精度不满足要求继续迭代182 183 //根进程负责输出结果184 if(!pID) output();185 186 //结束187 MPI_Finalize();188 return0;189 }190
openmpi雅可比迭代法_用雅可比迭代法求线性方程组的解的并行算法(MPI)相关推荐
- LU分解求线性方程组的解
LU分解是矩阵分解的一种,可以将一个矩阵分解为一个上三角矩阵和一个下三角矩阵的乘积. LU分解可以用来求逆矩阵,解线性方程组等.本文将介绍LU分解求线性方程组的解. 1.定义 如果A是一个方阵,A的L ...
- 计算方法LU分解c语言程序解线性方程组,LU分解求线性方程组的解
LU分解是矩阵分解的一种,可以将一个矩阵分解为一个上三角矩阵和一个下三角矩阵的乘积. LU分解可以用来求逆矩阵,解线性方程组等.本文将介绍LU分解求线性方程组的解. 1.定义 如果A是一个方阵,A的L ...
- 计算方法Gauss-Jordan消去法求线性方程组的解
function x=GaussJordan(A,b) % 用Gauss-Jordan消去法求线性方程组的解 % A为系数矩阵(要求解惟一,则必须为满秩方阵 n*n),b为右值 n*1 % x为所求的 ...
- C++高斯赛德迭代法,求线性方程组的解(version1.0)
#include<iostream> #include<math.h> using namespace std; const int n=3; void Gauss_Seide ...
- 雅克比 (Jacobi) 迭代法求线性方程组的解及其代码
简介 实例 可以看到,当迭代次数 k 增大时,迭代值会越来越接近解 x1 = x2 = x3 = 1. 代码 #include<iostream> #include<math.h&g ...
- 矩阵库eigen的用法(三)————求行列式值和三角分解求线性方程组的解
在经过前面2篇对 eigen库的基础知识了解之后,下面就可以用eigen库进行一些实际的操作了. 1.计算矩阵行列式的值 在Eigen里你不能混合两种不同类型的矩阵,像这样是错的 v_3d <& ...
- Java实现的LU分解,高斯消去法求线性方程组的解
LU分解在本质上是高斯消元法的一种表达形式.实质上是将A通过初等行变换变成一个上三角矩阵,其变换矩阵就是一个单位下三角矩阵.这正是所谓的杜尔里特算法(Doolittle algorithm) 重点内容 ...
- 杜利特尔 (Doolittle)矩阵分解法求线性方程组的解
简介 若方阵 A 可以分解为一个下三角矩阵 L 和一个上三角矩阵 U的乘积,即 A = LU,则这种分解称为 A 的一种三角分解或 LU分解.如果 L 为单位下三角矩阵,则称为杜利特尔 (Doolit ...
- 如何用matlab求线性方程的通解,用matlab求线性方程的解
用矩阵除法,求线性方程组的特解 利用矩阵除法求线性方程组的形式为:AX=b,其中A为系数矩阵,b为方程组右侧的一列常数. 由AX=b,得X=A\b,在这种条件下,首先要保证A为满秩矩阵,否则无法求解. ...
最新文章
- 目标检测——Faster R-CNN论文阅读
- [LeetCode系列]最大连续子列递归求解分析
- SAP WMSD集成之Copy WM Quantity – Copy WM qty as delivery qty into delivery
- 基于ThinkPHP的在线编辑器调用
- bootstrap下拉选择框选中事件_CAD制图初学入门之CAD软件中布局功能详解
- Ext4.2文件目录及页面默认导入文件
- 中国第一批写java的人_中国java开源界最可爱的人们
- DirectX11 With Windows SDK--07 添加光照与常用几何模型、光栅化状态
- Ubuntu上安装rvm
- 引commons-io工具类做文件的复制及导出
- Nginx 限制单个IP的并发连接数及对每个连接速度(限速)
- 安卓从入门到进阶推荐学习方法与书籍整理(pdf)
- (原创)用红黄蓝RYB色相环(伊登色相环)代替RGB(RGI/RGV)色相环
- 嘉楠科技多位高管退出,知情人称管理层夺权内斗
- 各版本iphone重要参数
- 一个vue的日历组件ele-calendar
- Flutter开发日常练习-小猫咪杂货店(新增欢迎页,广告页和侧滑页面)
- 加利福尼亚大学圣地亚哥分校计算机科学专业,美国加州大学伯克利分校计算机专业排名一览...
- css中textarea去掉边框和取消选中后的边框
- Python添加pywin32