解决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设计】。

相关文章

在PYQT5中QscrollArea(滚动条)的使用方法

在PYQT5中QscrollArea(滚动条)的使用方法

如下所示: import sys from PyQt5.QtWidgets import * class MainWindow(QMainWindow): def __in...

在Python中的Django框架中进行字符串翻译

使用函数 ugettext() 来指定一个翻译字符串。 作为惯例,使用短别名 _ 来引入这个函数以节省键入时间. 在下面这个例子中,文本 "Welcome to my site" 被标记...

Python跳出循环语句continue与break的区别

Python跳出循环语句continue与break的区别

虽然在Python中的for循环与其它语言不大一样,但跳出循环还是与大多数语言一样,可以使用关键字continue跳出本次循环或者break跳出整个for循环。 break 复制代码 代...

深入浅析Python的类

面向对象编程时,都会遇到一个概念,类,python也有这个概念,下面我们通过代码来深入了解下。 创建和使用类 class Dog(): def __init__(self, n...

python实现QQ邮箱/163邮箱的邮件发送

python实现QQ邮箱/163邮箱的邮件发送

QQ邮箱/163邮箱的邮件发送:py文件发送邮件内容相当于一个第三方的客户端,借助于QQ/163邮箱服务器来发送的邮件。 主要配置: 导入模块——import  ...