YEN_CSDN的博客

如果真的相信什么,就要用尽全力去让它发生。

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  # 21列
    r_k = A * x_k - b # 21列
    alpha_k = (np.transpose(r_k) * r_k) / (np.transpose(p_k) * A * p_k) # 11-----------------------------------------------
    x_k = x_k + alpha_k * p_k #21列  !!!!这里报错
     -----------------------------------------------
    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)

这里写图片描述

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/YEN_CSDN/article/details/80287773
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

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

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭