解决Python计算矩阵乘向量,矩阵乘实数的一些小错误

yipeiwu_com6年前Python基础

计算:Ax-b

A: 2*2
x: 2*1
b: 2*1
so, Ax-b: 2*1

if __name__ == "__main__":
  A = np.array([[4.0, 1.0],
         [1.0, 3.0]])
  b = np.array([[1.0], [2.0]])
  x_0 = np.array([[2.0], [1.0]])

  r_k = A * x_0 - b

  print(r_k)

错误!!!

修改:

if __name__ == "__main__":
  A= mat([[4.0, 1.0],
      [1.0, 3.0]])
  b = mat([[1.0], [2.0]])
  x_0 = mat([[2.0], [1.0]])

  r_k = A * x_0 - b

  print(r_k)

if __name__ == "__main__":
  A= mat([[4.0, 1.0],
      [1.0, 3.0]])
  b = mat([[1.0], [2.0]])
  x_k = mat([[2.0], [1.0]])

  p_k = -x_k # 2行1列
  r_k = A * x_k - b # 2行1列
  alpha_k = (np.transpose(r_k) * r_k) / (np.transpose(p_k) * A * p_k) # 1行1列
   -----------------------------------------------
  x_k = x_k + alpha_k * p_k #2行1列 !!!!这里报错
   -----------------------------------------------
  print(x_k)

修改:

if __name__ == "__main__":
  A= mat([[4.0, 1.0],
      [1.0, 3.0]])
  b = mat([[1.0], [2.0]])
  x_k = mat([[2.0], [1.0]])

  p_k = -x_k # 2*1
  r_k = A * x_k - b # 2*1
  alpha_k = (np.transpose(r_k) * r_k) / (np.transpose(p_k) * A * p_k) # 1*1
  -----------------------------------------------
  x_k = x_k +  p_k *alpha_k
  -----------------------------------------------
  print(x_k)

以上这篇解决Python计算矩阵乘向量,矩阵乘实数的一些小错误就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python 实现堆排序算法代码

复制代码 代码如下: #!/usr/bin/python import sys def left_child(node): return node * 2 + 1 def right_c...

Python 解决中文写入Excel时抛异常的问题

近期接到业务部门需求,需将统计结果每日发送到业务部门,在调试python脚本的时候,导出的Excel标题为中文,总是抛出以下异常 Traceback (most recent ca...

python 并发编程 多路复用IO模型详解

python 并发编程 多路复用IO模型详解

多路复用IO(IO multiplexing) 这种IO方式为事件驱动IO(event driven IO)。 我们都知道,select/epoll的好处就在于单个进程process就...

python实现字符串完美拆分split()的方法

函数:split() 例子 我们想要将以下字符串rule进行拆分。字符串表示的是一个规则,由“…”得到“…”。我们需要将规则中的条件属性与取值分别提取出来,存放在条件属性列表cf_lis...

Python 使用 Pillow 模块给图片添加文字水印的方法

Python 使用 Pillow 模块给图片添加文字水印的方法

像微博一类的平台上传图片时,平台都会添加一个水印,宣誓着对图片的所有权,我们自己的博客平台也可以给自己的图片添加上水印。 还是用 Pillow 模块来实现 先来看一个简单的例子 &g...