import numpy as np

import time

1.1 Jacobi迭代算法

def Jacobi_tensor_V2(A,b,Delta,m,n,M):

start=time.perf_counter()#开始计时

find=0#用于标记是否在规定步数内收敛

X=np.ones(n)#迭代起始点

x=np.ones(n)#用于存储迭代的中间结果

d=np.ones(n)#用于存储Ax**(m-2)的对角线部分

m1=m-1

m2=2-m

for i in range(M):

print('X',X)

a=np.copy(A)

#得Ax**(m-2)

for j in range(m-2):

a=np.dot(a,X)

#得d 和 (2-m)Dx**(m-2)+(L'+U')x**(m-2)

for j in range(n):

d[j]=a[j,j]

a[j,j]=m2*a[j,j]

#迭代更新

for j in range(n):

x[j]=(b[j]-np.dot(a[j],X))/(m1*d[j])

#判断是否满足精度要求

if np.max(np.fabs(X-x))

find=1

break

X=np.copy(x)

end=time.perf_counter()#结束计时

print('时间:',end-start)

print('迭代',i)

return X,find,i,end-start

1.2 张量A的生成函数和向量b的生成函数:

def Creat_A(m,n):#生成张量A

size=np.full(m, n)

X=np.ones(n)

while 1:

#随机生成给定形状的张量A

A=np.random.randint(-49,50,size=size)

#判断Dx**(m-2)是否非奇异,如果是,则满足要求,跳出循环

D=np.copy(A)

for i1 in range(n):

for i2 in range(n):

if i1!=i2:

D[i1,i2]=0

for i in range(m-2):

D=np.dot(D,X)

det=np.linalg.det(D)

if det!=0:

break

#将A的对角面张量扩大十倍,使对角面占优

for i1 in range(n):

for i2 in range(n):

if i1==i2:

A[i1,i2]=A[i1,i2]*10

print('A:')

print(A)

return A

#由A和给定的X根据Ax**(m-1)=b生成向量b

def Creat_b(A,X,m):

a=np.copy(A)

for i in range(m-1):

a=np.dot(a,X)

print('b:')

print(a)

return a

1.3 对称张量S的生成函数:

def Creat_S(m,n):#生成对称张量B

size=np.full(m, n)

S=np.zeros(size)

print('S',S)

for i in range(4):

#生成n为向量a

a=np.random.random(n)*np.random.randint(-5,6)

b=np.copy(a)

#对a进行m-1次外积,得到秩1对称张量b

for j in range(m-1):

b=outer(b,a)

#将不同的b叠加得到低秩对称张量S

S=S+b

print('S:')

print(S)

return S

def outer(a,b):

c=[]

for i in b:

c.append(i*a)

return np.array(c)

return a

1.4 实验一

def test_1():

Delta=0.01#精度

m=3#A的阶数

n=3#A的维数

M=200#最大迭代步数

X_real=np.array( [2,3,4])

A=Creat_A(m,n)

b=Creat_b(A,X_real,m)

Jacobi_tensor_V2(A,b,Delta,m,n)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

python牛顿迭代法_Jacobi迭代算法的Python实现详解相关推荐

  1. kmeans python interation flag_机器学习经典算法-logistic回归代码详解

    一.算法简要 我们希望有这么一种函数:接受输入然后预测出类别,这样用于分类.这里,用到了数学中的sigmoid函数,sigmoid函数的具体表达式和函数图象如下: 可以较为清楚的看到,当输入的x小于0 ...

  2. python实验原理_Python实现蒙特卡洛算法小实验过程详解

    蒙特卡洛算法思想 蒙特卡洛(Monte Carlo)法是一类随机算法的统称,提出者是大名鼎鼎的数学家冯·诺伊曼,他在20世纪40年代中期用驰名世界的赌城-摩纳哥的蒙特卡洛来命名这种方法. 通俗的解释一 ...

  3. python牛顿迭代法求根例题_1.3求根之牛顿迭代法

    目录 [TOC] 前言 今天我们讲的是具有收敛速度快,能求重根的解方程之法,牛顿迭代法. (一)牛顿迭代法的分析 1.定义 迭代公式如下: 迭代函数是: 由于 与原方程 等价. 当 时, 就是 的近似 ...

  4. 有限元学习笔记-虚功平衡方程的线性化及牛顿-拉普森迭代算法

    有限元学习笔记-虚功平衡方程的线性化及牛顿-拉普森迭代算法 张量微分是解连续介质物理问题的利器.

  5. python数据挖掘课程】二十一.朴素贝叶斯分类器详解及中文文本舆情分析

    #2018-04-06 13:52:30 April Friday the 14 week, the 096 day SZ SSMR python数据挖掘课程]二十一.朴素贝叶斯分类器详解及中文文本舆 ...

  6. python数据挖掘笔记】二十.KNN最近邻分类算法分析详解及平衡秤TXT数据集读取

    #2018-04-06 07:57:00 April Friday the 14 week, the 096 day SZ SSMR python数据挖掘笔记]二十.KNN最近邻分类算法分析详解及平衡 ...

  7. 【Python养成】常用内置函数 — 2(详解25个内置函数)

    图片来自互联网 文章目录 前言 二.内置函数详解 1.函数:chr(x) 2.函数:dir([obj]) 3.函数:divmod(x,y) 4.函数:enumerate(sequence, [star ...

  8. python代码案例详解-我用Python抓取了7000 多本电子书案例详解

    安装 安装很简单,只要执行: pip install requests-html 就可以了. 分析页面结构 通过浏览器审查元素可以发现这个电子书网站是用 WordPress 搭建的,首页列表元素很简单 ...

  9. python 命令-python解析命令行参数的三种方法详解

    这篇文章主要介绍了python解析命令行参数的三种方法详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 python解析命令行参数主要有三种方法: ...

最新文章

  1. $portfolio.isotope is not a function
  2. 序列到序列网络seq2seq与注意力机制attention浅析
  3. hashlib模块使用详情
  4. [资料]pthreads PHP
  5. easyui datagrid oncheck 修改行样式_100 种 PPT 图表样式送给你
  6. 重置系统_开课了,如何重置电脑系统?1分钟教会你!
  7. [LeetCode] Permutations II
  8. bzoj5056:OI游戏
  9. maven项目,在spring中整合mybatis
  10. paip.C#.net 悬浮窗口的建立总结
  11. 招聘senior.net software engineer
  12. linux bridge 添加fdb,Linux协议栈--网桥设备的实现
  13. JZOJ5460. 【NOIP2017提高A组冲刺11.7】士兵训练
  14. HTML ASP VBSCRIPT JAVASCRIPT SKILLS 常见问题
  15. ceph 代码分析 读_Ceph代码分析
  16. 全网最全编程学习网站汇总来了,还不赶快收藏
  17. 前端中DOM是什么,怎样理解dom
  18. Window XP驱动开发(十) 驱动程序的基本结构
  19. vue中使用微信jssdk语音聊天功能,实现语音输入内容的van-field输入框组件
  20. 学计算机减肥,电脑瘦身(教你一分钟让电脑瘦身)

热门文章

  1. okHttp记录---response.body().string()输出的结构是乱码
  2. js 请求接口获取不到登录cookie xhrFields 配置
  3. 【Python】Python库之游戏开发
  4. C#LeetCode刷题-数组
  5. 硅谷历史_使其新颖:硅谷设计的历史
  6. 向圣诞老人和他的精灵学习Google Analytics(分析)
  7. node.js ejs_如何在Node.js应用程序中使用EJS模板
  8. 利用 Python 写个七夕表白神器
  9. python爬虫框架Scrapy采集数据,并制作词云图分析!
  10. Vue与服务端数据交互 [ axios ]