python如何迭代生成矩阵_线性矩阵方程组迭代解法Python实现

公式出不来刷新一下

上了数值分析课,写个程序玩玩,程序有待完善,缺少收敛判断。

Update:

2016年12月14日:补充超松弛迭代法(SOR)。

Jacobi迭代公式:

$$x^{(k+1)}=-D^{-1}(L+U)x^{(k)}+D^{-1}b$$ 令

$$B=-D^{-1}(L+U),\quad d=D^{-1}b$$ 得到

$$x^{(k+1)}=Bx^{(k)}+D$$

# -*- coding: utf-8 -*-

import numpy as np

def jacobi (A,b):

n1 = len(A)

n2 = len(A.T)

x = np.ones([n1,1])

N=0

if (n1 != n2):

print "The input matrix is not squre matrix"

else :

B = np.zeros([n1,n1])

D = np.zeros([n1,n1])

d = np.ones([n1,1])

B = A.copy()

for i in range(n1):

B[i,i] = 0.0

D[i,i] = A[i,i].copy()

B = np.dot(-np.linalg.inv(D),B)

d = np.dot(np.linalg.inv(D),b)

x1 = x

x2 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值