SOR迭代求解线性方程组代码实现
import numpy as np
def sor(A,b,w,x0,limit):#xor迭代n=A.shape[1]D=np.zeros((n,n))
# print(A)for i in range(n):D[i][i]=A[i][i]L=np.zeros((n,n))for i in range(n):for j in range(i):L[i][j]=-A[i][j]U=np.zeros((n,n))for i in range(n):for j in range(i+1,n):U[i][j]=-A[i][j]
# print(D,L,U)print("开始求BS")BS=np.linalg.inv(D-w*L)f=np.matmul(BS,w*b)BS=np.matmul(BS,(1-w)*D+w*U)
# print(BS,b)#下面开始迭代,按理讲,如果是收敛的,那么应该使用前后两步x足够接近来停止迭代x=np.matmul(BS,x0)+fwhile(normx(x-x0,"inf")>limit):x0=xx=np.matmul(BS,x0)+freturn x
def normx(x,norm):#求一个向量的范数,目前只支持无穷范数。if(norm=="inf"):#相当于先取绝对值了。x=np.maximum(x,-x)return np.max(x)
测试如下:
A=np.array([[4,-1,0],[-1,4,-1],[0,-1,4]])
b=np.array([1,4,-3])
x0=np.array([0,0,0])
limit=0.0000001
print(A)
print(b)
sor(A,b,1,x0,limit)
结果如下:
你可以手算一下,发现就是这个,误差只有一点点limit
。
SOR迭代求解线性方程组代码实现相关推荐
- 【数值分析】Jacobi、Seidel和Sor迭代法求解线性方程组(附matlab代码)
线性方程组迭代解法公式类似非线性方程求根的简单迭代法公式, 有Jacobi迭代法. Seidel迭代法及Sor法等. 题目1-Jacobi迭代法和Seidel迭代法 来源:<数值分析>第5 ...
- sor迭代法求解线性方程组(Matlab)
sor迭代法求解线性方程组(Matlab) 函数文件(sor.m) 该函数不含停止的误差判断条件 function [x,n] = sor(A,b,x,w,it_max) % 求线性方程组的sor(s ...
- 数值计算大作业:Jacobi与Gauss -Seidel迭代求解线性方程组(Matlab实现)
作为研究生的入门课,数值计算的大作业算是所有研究生开学的重要编程作业. 我把Jacobi与Gauss -Seidel迭代求解线性方程组的数值计算作业在MATLAB中编程实现.具体的程序详细标注后放在文 ...
- Jacobi迭代与SOR迭代求解希尔伯特矩阵
给出线性方程组 Hn*x = b,其中系数矩阵Hn为希尔伯特矩阵: 假设 x ∗ =(1, 1, . . . , 1)T,b = Hnx ∗.若取 n = 6,8, 10,分别用 Jacobi 迭代法 ...
- Gauss-Seidel迭代求解线性方程组
高斯-赛德尔迭代法考试比较多,所以考虑再三,还是单独提取出来独立一篇,方便查阅,突出重点. 首先举例引入: 通过手动求解下面的线性方程组得到精确解: 再用高斯-赛德尔迭代法求解比较: 本人拙见,将每一 ...
- SOR迭代法c语言报告,SOR迭代_C语言代码
# include # include #include float **a; /*存放A矩阵*/ float *b; /*存放b矩阵*/ float *x; /*存放x矩阵*/ float p; / ...
- 迭代求解线性方程组的解
码字不易,觉得好,点个赞或收藏下吧!
- matlab迭代算法实例sor,SOR迭代 - 程序语言 - MATLAB/Mathematica - 小木虫论坛-学术科研互动平台...
方法一:建立了SOR.m的脚本文件,实现的是SOR迭代,程序语言如下: %SOR迭代 clear; clc; format long; i=1; n=6; H=hilb(n); X=ones(n,1) ...
- 数值代数课设(99分)--基于Jacobi迭代,GS迭代,SOR迭代对泊松方程的求解[matlab](上)
基于Jacobi迭代,GS迭代,SOR迭代对泊松方程的求解 摘要 随着大数据时代的到来,人们需要处理的数据越来越多,所需要考虑的条件因素也在增加.在工程方面,人们所需要处理的问题往往会转化为找出大规模 ...
最新文章
- python教程长城图案,Python编写万花尺图案实例
- C#皮肤之IrisSkin4.dll
- Intellij新建Spring项目引入用户目录下的Spring jar包
- 热电偶校验仪_热电偶校验方法_热电偶的使用方法及维修经验
- 实验 使用 vivado zedboard GPIO 开关 开控制 LED
- cwntos linux kde桌面,Centos如何安装KDE的桌面
- Java环境配置出现的问题及解决办法
- AD域首次登陆修改密码设置
- 比雷蛇0day更严重:通过虚拟赛睿外设即获取 Windows 管理员权限
- 基于多分类支持向量机和KNN分类器的大豆叶片病害检测与严重程度测量
- Alex 的 Hadoop 菜鸟教程: 第2课 hadoop 安装教程 (CentOS6 CDH分支 yum方式)
- maven上传pom文件
- windows11中文语言包|windows11中文汉化包
- MATLAB最小矩形法边界法,最小外接矩形法.PPT
- 用Java做一个基于Swing的多人网络聊天室
- 个人开发者用户福音,轻松申请微信商户、支付宝支付妙招
- CSS实现元素width右方向变化、左方向变化、双向变化
- C++中cout<<后面加endl什么意思?
- 前端JSer装逼手册
- 奥利给 之 【优学院自定义速度】
热门文章
- 什么是 Python 的 「内存管理机制」?
- 解决办法:CMake编译时出现“error in configuration process project files may be invalid”
- 有没有将深度学习融入机器人领域的尝试?有哪些难点?
- 小米用户画像实战(附48页PPT)
- 企业数智化转型与分析流程自动化(APA)
- 独家 | 机器学习模型应用方法综述
- 清华大数据系列讲座——大数据发展与区块链应用成功举办
- 关于TensorFlow,你应该了解这9件事(附代码链接)
- 独家 | 10分钟带你上手TensorFlow实践(附代码)
- 简单mysql 查询_MySQL简单查询详解