广告位联系
返回顶部
分享到

python实现迭代法求方程组的根

JavaScript 来源:互联网搜集 作者:秩名 发布时间:2019-11-25 13:14:25 人浏览
摘要

有方程组如下: 迭代法求解x,python代码如下: import numpy as npimport matplotlib.pyplot as plt A = np.array([[8, -3, 2], [4, 11, -1], [6, 3, 12]])b = np.array([[20, 33, 36]]) # 方法一:消元法求解方程组的解result = np.linalg.solve(A, b.T)pr

有方程组如下:


 

迭代法求解x,python代码如下:

import numpy as np
import matplotlib.pyplot as plt
  
A = np.array([[8, -3, 2], [4, 11, -1], [6, 3, 12]])
b = np.array([[20, 33, 36]])
  
# 方法一:消元法求解方程组的解
result = np.linalg.solve(A, b.T)
print('Result:\n', result)
  
# 方法二:迭代法求解方程组的解
B = np.array([[0, 3/8, -2/8], [-4/11, 0, 1/11], [-6/12, -3/12, 0]])
f = np.array([[20/8, 33/11, 36/12]])
error = 1.0e-6
steps = 100
xk = np.zeros((3, 1)) # initialize parameter setting
errorlist = []
for k in range(steps):
  xk_1 = xk
  xk = np.matmul(B, xk) + f.T
  print('xk:\n', xk)
  errorlist.append(np.linalg.norm(xk-xk_1))
  if errorlist[-1] < error:
    print('iteration: ', k+1)
    break
  
# 把误差画出来
x_axis = [i for i in range(len(errorlist))]
plt.figure()
plt.plot(x_axis, errorlist)

结果如下:


 


版权声明 : 本文内容来源于互联网或用户自行发布贡献,该文观点仅代表原作者本人。本站仅提供信息存储空间服务和不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权, 违法违规的内容, 请发送邮件至2530232025#qq.cn(#换@)举报,一经查实,本站将立刻删除。
原文链接 : https://www.cnblogs.com/picassooo/p/11914755.html
相关文章
  • 本站所有内容来源于互联网或用户自行发布,本站仅提供信息存储空间服务,不拥有版权,不承担法律责任。如有侵犯您的权益,请您联系站长处理!
  • Copyright © 2017-2022 F11.CN All Rights Reserved. F11站长开发者网 版权所有 | 苏ICP备2022031554号-1 | 51LA统计