如何用python构造未知数矩阵并计算

img

比如像图片这样的矩阵,构造好之后传输数据进行批量计算。

img


目前只会基础的sympy和numpy,如果有朋友知道学哪一个模块可以做出来也会采纳答案!十分感谢

python未知数的矩阵运算_python如何进行矩阵运算

import numpy as np

加法

思路

参考矩阵加法公式

先判断两矩阵能否相加

遍历两个矩阵

各相同位置元素相加

实现

def add(a, b):

if(a.shape != b.shape):

print('两矩阵不为同型矩阵!')

return

c = np.zeros(a.shape)

for i in range(a.shape[0]):

for j in range(a.shape[1]):

c[i][j] = a[i][j] + b[i][j]

return c

数乘

思路

参考矩阵数乘公式

遍历矩阵

相乘

实现

def numSub(a, b):

c = np.zeros(a.shape)

for i in range(a.shape[0]):

for j in range(a.shape[1]):

c[i][j] = a[i][j] * b

return c

Hadamard乘积

思路

参考Hadamard乘积公式

与矩阵加法思路一致

实现

# 矩阵对应元素相乘 Hadamard乘积

def had(a,b):

if(a.shape != b.shape):

print('两矩阵不为同型矩阵!')

return

c = np.zeros(a.shape)

for i in range(c.shape[0]):

for j in range(c.shape[1]):

c[i][j] = a[i][j] * b[i][j]

点积

思路

参考矩阵点积公式

理解公式:乘积C的第m行第n列的元素等于矩阵A的第m行的元素与矩阵B的第n列对应元素乘积之和。

判断两矩阵是否为同型矩阵

构建m行n列的结果矩阵

向结果矩阵中赋值:

(1). 遍历结果矩阵

(2). 求出矩阵A对应行与矩阵B对应列的元素乘积之和:

根据公式,A矩阵的行与B矩阵的列均确定,因此根据累加条件遍历两个矩阵来确定另一个索引位置,并累加求和

实现

# 矩阵相乘

def mul(a,b):

if(a.shape[1] != b.shape[0]):

print('两矩阵不能相乘')

return

m = a.shape[0]

n = b.shape[1]

s = a.shape[1]

c = np.zeros((m,n))

for i in range(m):

for j in range(n):

for k in range(s):

c[i][j] += a[i][k]*b[k][j]

pass

pass

return c

不知道你想要的结果是怎么样的

下面这两个numpy的不知道是否符合你的需求:


NumPy 线性代数 | 菜鸟教程 NumPy 线性代数 NumPy 提供了线性代数函数库 linalg,该库包含了线性代数所需的所有功能,可以看看下面的说明: 函数 描述 dot 两个数组的点积,即元素对应相乘。 vdot 两个向量的点积 inner 两个数组的内积 matmul 两个数组的矩阵积 determinant 数组的行列式 solve 求解线性矩阵方程 inv 计算矩阵的乘法逆矩阵 numpy... https://www.runoob.com/numpy/numpy-linear-algebra.html