博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
线性方程组迭代求解——Jacobi迭代算法(Python实现)
阅读量:6606 次
发布时间:2019-06-24

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

原理:

请看本人博客:

代码:

import numpy as npmax=100#迭代次数上限Delta=0.01m=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)#读取矩阵Ab=read_vector(f)#读取bf.close()print('A:')print(A)print('b:',b)#求LU=L+ULU=np.copy(A)for i in range(n):    LU[i,i]=0LU=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))

数据:

组织形式:前3行是A的数据,最后1行是b的数据。

 

结果:

 

转载于:https://www.cnblogs.com/Fengqiao/p/Jacobi.html

你可能感兴趣的文章
Gradle脚本基础全攻略
查看>>
Django模版中的过滤器详细解析 Django filter大全
查看>>
Linux中使用pwconv实现passwd中密码到shadow
查看>>
MongoDB C++ gridfs worked example
查看>>
Visual Studio 2017各版本安装包离线下载
查看>>
C#线程安全的那些事
查看>>
【论文笔记】Social Role-Aware Emotion Contagion in Image Social Networks
查看>>
rpm安装PostgreSQL
查看>>
k sum(lintcode)
查看>>
28. extjs中Ext.BLANK_IMAGE_URL的作用
查看>>
Hibernate注解配置N:N关联
查看>>
Android 控件属性
查看>>
【244】◀▶IEW-Unit09
查看>>
处理有外键约束的数据
查看>>
par函数的xaxt函数-控制x轴刻度的显示
查看>>
Unity5.1 新的网络引擎UNET(十五) Networking 引用--中
查看>>
用任务计划管理计划任务对付任务计划-禁止WPS提示升级
查看>>
Android——SlidingMenu学习总结
查看>>
React-Native 之 GD (十六)首页筛选功能
查看>>
UI概念体系要素
查看>>