线性方程组迭代算法——Jacobi迭代算法的python实现
原理:
请看本人博客:线性方程组的迭代求解算法——原理
代码:
import numpy as np
max=100#迭代次数上限
Delta=0.01
m=2#阶数:矩阵为2阶
n=3#维数:3X3的矩阵 shape=np.full(m, n)
shape=tuple(shape) def read_tensor(f,shape):#读取张量
data=[]
for i in range(n**(m-1)):
line = f.readline()
data.append(list(map(eval, line.split(","))))
return np.array(data).reshape(shape) def read_vector(f):#读取向量
line = f.readline()
line = line.replace("\n","")
line=list(map(eval, line.split(",")))
return np.array(line) #读取数据
f = open("jacobi_data.txt")
A=read_tensor(f,shape)#读取矩阵A
b=read_vector(f)#读取b
f.close()
print('A:')
print(A)
print('b:',b) #求LU=L+U
LU=np.copy(A)
for i in range(n):
LU[i,i]=0
LU=0-LU #求D:系数矩阵的对角线元素
D=np.copy(A)
D=D+LU #迭代求解
x=np.ones(n)#用于存储迭代过程中x的值
y=np.ones(n)#用于存储中间结果
DLU=np.dot(np.linalg.inv(D),LU)#对D求逆,然后和LU相乘
Db=np.dot(np.linalg.inv(D),b)
print('x:',x)
for iteration in range(max):
#迭代计算
y=np.dot(DLU,x)+Db #判断是否达到精度要求
if np.max(np.fabs(x-y))<Delta:
print('iteration:',iteration)
break
#将y幅值到x,开始下一轮迭代
x=np.copy(y)
print('x:',x)
数据:
组织形式:前3行是A的数据,最后1行是b的数据。

结果:

线性方程组迭代算法——Jacobi迭代算法的python实现的更多相关文章
- 多线性方程组迭代算法——Jacobi迭代算法的Python实现
多线性方程(张量)组迭代算法的原理请看这里:若想看原理部分请留言,不方便公开分享 Gauss-Seidel迭代算法:多线性方程组迭代算法——Gauss-Seidel迭代算法的Python实现 impo ...
- 多线性方程组迭代算法——Gauss-Seidel迭代算法的Python实现
多线性方程组(张量)迭代算法的原理请看这里:原理部分请留言,不方便公开分享 Jacobi迭代算法里有详细注释:多线性方程组迭代算法——Jacobi迭代算法的Python实现 import numpy ...
- 吴裕雄 python 机器学习——半监督学习标准迭代式标记传播算法LabelPropagation模型
import numpy as np import matplotlib.pyplot as plt from sklearn import metrics from sklearn import d ...
- ICP(迭代最近点)算法
图像配准是图像处理研究领域中的一个典型问题和技术难点,其目的在于比较或融合针对同一对象在不同条件下获取的图像,例如图像会来自不同的采集设备,取自不同的时间,不同的拍摄视角等等,有时也需要用到针对不同对 ...
- 算法 递归 迭代 动态规划 斐波那契数列 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- flink PageRank详解(批量迭代的页面排名算法的基本实现)
1.PageRank算法原理 2.基本数据准备 /** * numPages缺省15个测试页面 * * EDGES表示从一个pageId指向相连的另外一个pageId */ public clas ...
- 迭代硬阈值类算法总结||IHT/NIHT/CGIHT/HTP
迭代硬阈值类(IHT)算法总结 斜风细雨作小寒,淡烟疏柳媚晴滩.入淮清洛渐漫漫. 雪沫乳花浮午盏,蓼茸蒿笋试春盘.人间有味是清欢. ---- 苏轼 更多精彩内容请关注微信公众号 "优化与算法 ...
- ICP算法(迭代最近点)
参考博客:http://www.cnblogs.com/21207-iHome/p/6034462.html 最近在做点云匹配,需要用c++实现ICP算法,下面是简单理解,期待高手指正. ICP算法能 ...
- 机器学习经典分类算法 —— k-均值算法(附python实现代码及数据集)
目录 工作原理 python实现 算法实战 对mnist数据集进行聚类 小结 附录 工作原理 聚类是一种无监督的学习,它将相似的对象归到同一个簇中.类似于全自动分类(自动的意思是连类别都是自动构建的) ...
随机推荐
- 微信小程序实战篇-分类页面制作
https://blog.csdn.net/u012927188/article/details/73650264
- HDU 1709 The Balance( DP )
The Balance Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total ...
- 如何用Mybatis分库分表
分库 在分库的时候 有时候为了方便 一些表需要存放所有库的信息,称为全局库.如:用户表存放所有的用户. 此时分库的思路 数据库分为全局库和业务库,其中业务库又分为N多个库,全局库只放个别表方便开发. ...
- 60.Median of Two Sorted Arrays(两个排序数组的中位数)
Level: Hard 题目描述: There are two sorted arrays nums1 and nums2 of size m and n respectively. Find t ...
- ingress-nginx配置https文件访问
1.先将证书文件上传至服务器特定目录.比如:/root/ssl 假设证书名称为:server.crt和server.key 2.现在主节点后台创建私密文件. kubectl create secret ...
- spring静态资源配置
优雅REST风格的资源URL不希望带 .html 或 .do 等后缀.由于早期的Spring MVC不能很好地处理静态资源,所以在web.xml中配置DispatcherServlet的请求映射,往往 ...
- 2018-2-22-在-windows-安装-Jekyll
title author date CreateTime categories 在 windows 安装 Jekyll lindexi 2018-02-22 17:47:39 +0800 2018-2 ...
- HDU-4126 Genghis Khan the Conqueror 树形DP+MST (好题)
题意:给出一个n个点m条边的无向边,q次询问每次询问把一条边权值增大后问新的MST是多少,输出Sum(MST)/q. 解法:一开始想的是破圈法,后来想了想应该不行,破圈法应该只能用于加边的情况而不是修 ...
- 力扣—set matrix zeroes (矩阵置零) python实现
题目描述: 中文: 给定一个 m x n 的矩阵,如果一个元素为 0,则将其所在行和列的所有元素都设为 0.请使用原地算法. 英文: Given a m x n matrix, if an eleme ...
- Spring Boot Service注入为null mapper注入为null @Component注解下@Value获取不到值 WebsocketServer类里无法注入service
最近搞了一下websocket前台(这个网上有很多的教程这里就不班门弄斧啦) 以及前后台的交互 和后台的bug(搞了两天) 也是状态频发 bug不断 下面说一说问题. Websocket主类里面无法注 ...