首页 > 试题广场 >

基向量变换矩阵

[编程题]基向量变换矩阵
  • 热度指数:721 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
在线性代数中,同一个向量可以在不同的基下表示。给定 \mathbb{R}^3 空间中两组基向量 BC,实现一个函数来计算从基 C  到基B 的变换矩阵 P

输入描述:
函数`transform_basis`接收两个参数:
1. B:3×3矩阵,表示第一组基向量(每列是一个基向量)
2. C:3×3矩阵,表示第二组基向量(每列是一个基向量)


输出描述:
返回一个 3 \times 3 的矩阵 P
示例1

输入

[[1, 0, 0], [0, 1, 0], [0, 0, 1]]
[[1, 1, 0], [0, 1, 1], [1, 0, 1]]

输出

[[0.5, -0.5, 0.5], [0.5, 0.5, -0.5], [-0.5, 0.5, 0.5]]

备注:
1.对应的输入、输出已给出,您只用实现核心功能函数即可。
2.支持numpy、scipy、pandas、scikit-learn库。
头像 牛客题解官
发表于 2025-02-05 12:46:53
基向量变换矩阵(Basis Vector Transformation Matrix)是一种常用的矩阵,用于将基向量变换为另一个基向量。 从矩阵A到矩阵B的基向量变换矩阵P,满足。 本质上就是对A的列向量进行线性变换,使得A的列向量变为B的列向量。 标准代码如下 def transform_basi 展开全文
头像 ForHeart
发表于 2025-03-03 16:46:41
import numpy as np def transform_basis(B, C): B1 = np.linalg.inv(B) res = np.linalg.solve(C,B).tolist() return res if __name__ == &quo 展开全文
头像 ForHeart
发表于 2025-03-03 16:49:10
import numpy as np def transform_basis(B, C): res = np.linalg.solve(C,B).tolist() return res if __name__ == "__main__": B = 展开全文
头像 ForHeart
发表于 2025-03-03 16:49:53
import numpy as np def transform_basis(B, C): res = np.linalg.solve(C,B).tolist() return res if __name__ == "__main__": B = 展开全文
头像 牛客933231358号
发表于 2025-03-30 19:14:40
import numpy as np def transform_basis(B, C): pass if B.shape!=(3,3) or C.shape!=(3,3): return -1 return (np.linalg.inv(C) 展开全文