Jacobi迭代法的python实现

设有线性方程组Ax=b,其中n阶矩阵A=(aij)使非奇异矩阵
将A分解为A=M-N,因而Mx=Nx+b,求解Ax=b转化为求解x=M的逆Nx+M的逆b
可构造一阶梯定常迭代法x(k+1)=B
x(k)+f
令A=D-L-U,其中D是有A的主对角元组成的对角矩阵,L是A的下三角矩阵每一行乘以-1,U是A的上三角矩阵每一行乘以-1
Jacobi迭代法中,令M=D,A=D-N,因而B=M的逆N=M的逆(M-A)=D的逆*(L+U)
f=D的逆b
确定初值x0,开始迭代
若x最终收敛于x
,则线性方程组有解x*,否则无解
确定需要的绝对误差限或相对误差限e,确定相应的迭代次数

下面给出一个例子
矩阵A
10.0 3.0 1.0
2.0 -10.0 3.0
1.0 3.0 10.0
b=(14.0,-5.0,14.0)’
要求绝对误差限e=0.00001即精确到小数点后5位
代码如下

# -*- coding: utf-8 -*-
"""
Created on Wed Feb 13 08:09:46 2019

@author: 鹰皇
"""

#jacobi迭代法
import numpy as np
A=[[10.0,3.0,1.0],[2.0,-10.0,3.0],[1.0,3.0,10.0]]
b=[[14.0,-5.0,14.0]]

def get_base(A):#获得一个基,在基
  • 2
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值