解决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使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案

详解python使用pip安装第三方库(工具包)速度慢、超时、失败的解决方案

人生苦短,我用python!为什么很多人喜欢用python,因为包多呀,各种调包。但是调包有的时候也调的闹心,因为安装包不是失败就是很慢,很影响自己的工作进度,这里给出一个pip快速安装...

python关于调用函数外的变量实例

实例如下所示: class Solution(object): def foo(self, s): def bar(a): s += a prin...

Python实现PS图像调整之对比度调整功能示例

Python实现PS图像调整之对比度调整功能示例

本文实例讲述了Python实现PS图像调整之对比度调整功能。分享给大家供大家参考,具体如下: 这里用 Python 实现 PS 里的图像调整–对比度调整。具体的算法原理如下: (1)、n...

详解python:time模块用法

详解python:time模块用法

time模块下有两种时间表示方法: 第1种是:时间戳的方式。是基于1970年1月1日0时0分0秒的偏移。浮点数。 第2种是:struct_time()类型的表示方法。gmtime()和l...

Python中操作文件之write()方法的使用教程

 write()方法把字符串str写入文件。没有返回值。由于缓冲,字符串可能不实际显示文件,直到flush()或close()方法被调用。 语法 以下是write()方法的语法...