2026a
# *
符号矩阵乘法
函数库: TySymbolicMath
# 语法
A * B
* (A, B)
# 说明
A * B 返回 A 和 B 的矩阵乘积。如果 A 是一个 m×p 而 B 是一个 p×n 矩阵,那么结果是一个 m×n 矩阵 C,定义为
对于非标量 A 和 B,A 的列数必须等于 B 的行数。矩阵乘法对于非标量的输入一般不是可交换的。也就是说,通常 A*B 不等于 B*A。 如果至少一个输入是标量,则 A*B 等价于 A.*B 并且是可交换的。 示例
*(A, B) 是 A * B 的替代用法。
# 示例
两个向量相乘
创建一个 1×5 行向量和一个 5×1 列向量。求这两个向量的矩阵乘积,即求 A 和 B 的内积。
using TySymbolicMath
@variables x
A = [x, 2*x^2, 3*x^3, 4*x^4]'
B = [1/x, 2/x^2, 3/x^3, 4/x^4]
A*B
30
两个矩阵相乘
创建一个 4×3 矩阵和一个 3×2 矩阵,并将两矩阵相乘,结果为一个 4×2 矩阵。
using TySymbolicMath
@variables a[1:4,1:3]
a=scalarize(a)
@variables b[1:3,1:2]
b=scalarize(b)
a*b
4×2 Matrix{Num}:
a[1, 1]*b[1, 1] + a[1, 2]*b[2, 1] + a[1, 3]*b[3, 1] … a[1, 1]*b[1, 2] + a[1, 2]*b[2, 2] + a[1, 3]*b[3, 2]
a[2, 1]*b[1, 1] + a[2, 2]*b[2, 1] + a[2, 3]*b[3, 1] a[2, 1]*b[1, 2] + a[2, 2]*b[2, 2] + a[2, 3]*b[3, 2]
a[3, 1]*b[1, 1] + a[3, 2]*b[2, 1] + a[3, 3]*b[3, 1] a[3, 1]*b[1, 2] + a[3, 2]*b[2, 2] + a[3, 3]*b[3, 2]
a[4, 1]*b[1, 1] + a[4, 2]*b[2, 1] + a[4, 3]*b[3, 1] a[4, 1]*b[1, 2] + a[4, 2]*b[2, 2] + a[4, 3]*b[3, 2]
矩阵与标量相乘
创建一个 4×4 希尔伯特矩阵 H。
using TySymbolicMath
using TyMath
@variables H
H = hilb(4)
4×4 Matrix{Float64}:
1.0 0.5 0.333333 0.25
0.5 0.333333 0.25 0.2
0.333333 0.25 0.2 0.166667
0.25 0.2 0.166667 0.142857
将矩阵 H 与标量 x 相乘,即矩阵中每一个元素乘以 x。
@variables x
H * x
4×4 Matrix{Num}:
x 0.5x 0.333333x 0.25x
0.5x 0.333333x 0.25x 0.2x
0.333333x 0.25x 0.2x 0.166667x
0.25x 0.2x 0.166667x 0.142857x
# 输入参数
A, B - 输入符号符号变量 | 符号表达式 | 符号函数 | 符号向量 | 符号矩阵
输入符号,指定为符号变量、表达式或函数,或符号变量、表达式或函数的向量或矩阵。输入 A 的行数必须等于 B 的列数,除非其中一个是标量。标量值扩展为与其他输入相同大小的数组。