假设我有一组彼此正交的向量$ a_1,...,a_d $。现在,我想找到另一个与所有其他向量正交的向量$ a_ {d + 1} $。
有没有一种有效的算法来实现这一目标?我只能考虑在最后添加一个随机向量,然后应用gram-schmidt。
有没有python库已经实现了这个目标?
答案 0 :(得分:2)
Related。无法说出最优性,但这是一个有效的解决方案。好的是<Application
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:system="clr-namespace:System;assembly=mscorlib"
xmlns:options="http://schemas.microsoft.com/winfx/2006/xaml/presentation/options">
<Application.Resources>
<ResourceDictionary>
<Color x:Key="InformationColor">#147ec9</Color>
<SolidColorBrush x:Key="InformationColorBrush" Color="{StaticResource InformationColor}" options:Freeze="True" />
<Color x:Key="SuccessColor">#11ad45</Color>
<SolidColorBrush x:Key="SuccessColorBrush" Color="{StaticResource SuccessColor}" options:Freeze="True" />
<Color x:Key="ErrorColor">#e60914</Color>
<SolidColorBrush x:Key="ErrorColorBrush" Color="{StaticResource ErrorColor}" options:Freeze="True" />
<Color x:Key="WarningColor">#f5a300</Color>
<SolidColorBrush x:Key="WarningColorBrush" Color="{StaticResource WarningColor}" options:Freeze="True" />
</ResourceDictionary>
</Application.Resources>
完成所有繁重的工作,所以这可能比手工制作Gram-Schmidt更快更强大。此外,this表明复杂性并不比Gram-Schmidt差。
这个想法:
numpy.linalg
的列。O
。通常O
将保持满秩矩阵。 O
选择b = [0, 0, ..., 0, 1]
。len(b) = d + 1
。然后,x O = b
保证为非零且与x
的所有原始列正交。O