迭代法求解线性方程组
来源:互联网 发布:量化对冲软件 编辑:程序博客网 时间:2024/04/28 11:40
关于迭代法一般解释参见数值计算教材
求解线性方程组
Jacobi 迭代法
向量
其中
java代码
/** *Jacobi迭代法Ax = b,若在给定步数能求出解,返回true,否则返回false * @param A * @param b * @param x解 * @param n未知数个数 * @param esp误差 */ public static boolean Jacobi(double[][] A,double[] b,double[]x,int n,double esp,int step) { double[] y = new double[n+1]; for(int i=1 ; i<=n ; ++i)x[i] = 0; int k = 0; boolean flag = false; while(k<step) { for(int i=1 ; i<=n ; ++i) { double sum = b[i]; for(int j=1 ; j<=n ; ++j) { if(i!=j) { sum-=A[i][j]*x[j]; } } y[i] = sum/A[i][i]; } //比较误差 double max = Math.abs(y[0]-x[0]); for(int i=2 ; i<=n ; ++i) if(max>esp) { break; }else{ max = Math.max(max, Math.abs(y[i]-x[i])); } for(int i=1 ; i<=n ; ++i)x[i] = y[i]; if(max<esp){ flag = true; break; } k++; } return flag; }
空间复杂度
Gauss_Seidel
这种方法只是在
/** * 求解Ax =b * @param A * @param b * @param x * @param step步数 * @param n未知元个数 * @param exp误差限 * @return true IFF 在给定步数内求出解 */ public static boolean GauusSeidel(double[][] A,double[]b,double[]x,int step,int n,double exp) { double[] y = new double[n+1]; for(int i=1 ; i<=n ; ++i)x[i] = 0; int k = 0; boolean flag = false; while(k<step) { for(int i=1 ; i<=n ; ++i) { double sum = b[i]; for(int j=1 ; j<=n ; ++j) { if(i>j) { sum-=A[i][j]*y[j]; }else if(i<j) { sum-=A[i][j]*x[j]; } } y[i] = sum/A[i][i]; } //比较误差 double max = Math.abs(y[0]-x[0]); for(int i=2 ; i<=n ; ++i) if(max>exp) { break; }else{ max = Math.max(max, Math.abs(y[i]-x[i])); } for(int i=1 ; i<=n ; ++i)x[i] = y[i]; if(max<exp){ flag = true; break; } k++; } return flag; }
0 0
- 求解线性方程组--Jacobi迭代法
- 迭代法求解线性方程组
- jacobi迭代法求解线性方程组
- 求解线性方程组--Gauss-Seidel迭代法
- 迭代法求解线性方程组(C++实现)
- 数值计算 && 实验8 && Gauss-Seidel迭代法求解线性方程组
- 数值分析 jacobi迭代法求解线性方程组 MATLAB程序实现
- 数值分析 Gauss-Seidel迭代法求解线性方程组 MATLAB程序实现
- 基于matlab的jacobi(雅可比)迭代法求解线性方程组
- 雅可比迭代法,塞德尔迭代法,逐次超松弛法求解线性方程组
- 求解线性方程组之Gauss_Seidel迭代法求解对角线占绝对优势的系统
- 求解线性方程组
- 线性方程组求解
- 求解线性方程组
- 线性方程组的迭代法
- 迭代法解线性方程组
- Jacobi迭代法求线性方程组
- 线性方程组迭代法--一个综述
- Android系统编译指令make 、mmm、mm优缺点比较
- ios摇一摇功能
- Mac忘记登录密码解决方案
- El表达式 (对Collection Map集合的支持)
- SpringMVC conflicts with existing, non-compatible bean definition of same name and class 的解决办法
- 迭代法求解线性方程组
- QCombobox应用QStyledItemDelegate小示例
- NDK开发系列之第二课C语言的基本语法与指针
- java代码的规范性
- WEB容器监听器详解 ServletContextListener
- Tomcat单机安装(centos/linux)
- C++异常以及错误处理
- Android——ListView使用过程中的常用属性(持续更新)
- sigemptyset、sigaddset、sigprocmask的用法