solve
是 Open3D 中的核心库 open3d.core
中的一种函数,用于求解稀疏线性最小二乘问题。该函数的目的是解决 Ax = b 这个线性方程组。
def solve(A: open3d.cpu.pybind.sparsematrix.SparseMatrix,
b: numpy.ndarray) -> numpy.ndarray:
'''
Solve sparse linear least square problem.
The problem is to :math:`\\mathrm{argmin}_{\\boldsymbol{x}} \\|A \\boldsymbol{x} - \\boldsymbol{b} \\|^2_2`,
where :math:`A` is the sparse matrix, and :math:`\\boldsymbol{x}` and :math:`\\boldsymbol{b}` are dense vectors.
'''
A
:稀疏矩阵 $A$, 类型为 open3d.cpu.pybind.sparsematrix.SparseMatrix
b
:密集向量 $b$,类型为 numpy.ndarray
numpy.ndarray
: 解 $x$ 的密集向量import open3d as o3d
import numpy as np
A = o3d.cpu.pybind.SparseMatrix(3, 3)
A[0,0] = 1.0
A[1,1] = 2.0
A[2,2] = 3.0
b = np.array([1.0, 1.0, 1.0])
x = o3d.core.solve(A, b)
print(x)
输出:
[1. 0.5 0.33333333]
NotImplementedError
: 没有 Open3D 中的 GPU 实现,当 A
是 GPU 稀疏矩阵时抛出此异常。core.solve
. https://open3d.org/docs/release/core_api.html#open3d.core.solve (Accessed on September 12, 2021)