探索正交性:从向量到函数

关键词:正交性、向量、函数、点积、内积、离散、Python编程、数据分析、可视化

正交性

正交性是一个数学原理,表示两个向量(信号)之间没有相关性或关系。这意味着所涉及的向量或信号是相互独立或无关的。

当两个向量(信号)的内积(也称为点积)为零时,称其为正交(在向量代数中垂直)。

\[A\perp B\Leftrightarrow\left<A.B\right>=A_1\cdot B_1+A_2\cdot B2+\cdot A_n\cdot B_n=0\]

示例:让我们证明两个向量\(overrightarrow{A}=\binom{-2}{3}\)和\(overlightarrow{B}=\biom{3}{2}\)是正交的

\[\overrightarrow{A}\cdot\overright arrow}=A_xB_x+A_yB_y=(-2)(3)+(3)(2)=0\]

让我们验证向量之间的角度是否为\(90^{\circ}\)

\[θ=cos^{-1}\左(\frac{\overrightarrow{A}\cdot\overrghtarrow}{B}}{|\overright arrow{A}||\overlightarrows{B}|}\right)=cos#{-1}(0)=90^{\circ}\]
两个正交向量
图1:显示正交性的两个向量

要找到两个向量的点积,需要将它们的对应分量相乘,然后将结果相加。下面是检查两个复值向量(vec{a})和(vec}b})正交性的通用公式(用矩阵表示法):

\[\vec{a}\perp\ vec{b}\Rightarrow\left<\vec}a},\vec[b}\right>=\begin{bmatrix}a_1^*&a_2^*&\cdots&a_n^*\\\结束{bmatrix}\开始{bmatrix}b_1\\b2型\\\视频短片\\b_n(b_n)\\\结束{bmatrix}=0\]

下面是Python中的一个示例代码片段,它演示了如何检查以列表形式给出的两个向量是否正交。

将numpy导入为np将matplotlib.pyplot作为plt导入定义点乘积(vector1,vector2):如果len(vector1)!=len(矢量2):raise ValueError(“矢量必须具有相同的长度。”)返回和(x*y代表x,y在zip中(vector1,vector2))定义为正交(向量1,向量2):结果=dot_product(vector1,vector2)返回结果==0#矢量示例矢量A=[-2,3]向量B=[3,2]#检查向量是否正交如果为正交(矢量A,矢量B)(_O):打印(“矢量是正交的。”)其他:打印(“矢量不是正交的。”)#绘制矢量origin=[0],[0]#矢量的原点plt.颤动(*原点,向量A[0],向量A[1],角度='xy',标度单位='xy',标距=1,颜色='r',标签='Vector A')plt.颤动(*原点,向量b[0],向量b[1],角度='xy',缩放单位='xy',缩放比例=1,颜色='b',标签='Vector b')图xlim(-5,5)plt.ylim(-5,5)插图xlabel('x')伊拉贝尔(“y”)插图标题(“矢量图”)plt.grid(真)插图图例()展示()

连续函数的正交性

在函数的上下文中,正交性可以被视为一个更广泛的概念,类似于向量中观察到的正交性。几何上,正交向量彼此垂直,因为它们的点积等于零。

当计算两个向量的点积时,它们的分量会相乘并求和。然而,当考虑函数的“点”积时,也采用了类似的方法。函数被视为具有无穷多个分量的向量,点积是通过将函数相乘并在特定区间内积分得到的。

f(t)克(吨)是闭合区间上的两个连续函数(想象成两个向量)[甲,乙](即a≤t≤b). 对于在给定区间内正交的函数,其点积应为零

\[\left<f,g\right>=\int_a^b f(t)g(t)dt=0\Rightarrow\text{f(t

下面是一个小的python脚本,用于检查两个给定函数是否正交

Python脚本

导入交响乐将numpy导入为np将matplotlib.pyplot作为plt导入plt.style.use(“海上谈话”)打印(打印样式可用)#测试函数的正交性x=症状。符号('x')f=sympy.sin(x)#第一个函数g=sympy.cos(2*x)#第二个函数a=0#区间下限b=2*sympy.pi#区间上限interval=(0,2*sympy.pi)#积分间隔inner_product=sympy.integrate(f*g,(x,区间[0],区间[1]))如果有症状。N(inner_product)==0:print(“函数”、str(f)、“和”、strs(g)、“在区间[”、stra(a)、“、”、strb(b)、“]上是正交的。”)其他:print(“函数”、str(f)、“和”、strs(g)、“在区间[”、stra(a)、“,”、strb(b)、“]上不正交。”)#绘制函数x_vals=np.linspace(浮点(区间[0]),浮点(区间[1]),100)f值=np.sin(x值)g_vals=np.cos(2*x_vals)plt.plot(x值,f值,标签=str(f))plt.plot(x值,g值,标签=str(g))plt.plot(x值,f值*g值,标签=str(f)+str(g))插图xlabel('x')plt.ylabel(“函数值”)插图图例()plt.title(“函数集”)plt.网格(真)展示()

输出

函数sin(x)和cos(2*x)在区间[0,2*pi]上是正交的
正弦的正交性两个函数的正交性

离散函数的正交性

要检查离散函数的正交性,可以使用内积的概念(同上)。在离散设置中,内积可以被认为是对应点上函数值的元素乘积之和。

以下是Python中的示例代码片段,演示了如何检查两个离散函数的正交性:

将numpy导入为np定义inner_product(f,g):如果len(f)!=长度(g):raise ValueError(“函数必须具有相同的长度。”)返回np.sum(f*g)定义为正交(f,g):结果=内积(f,g)返回结果==0#示例函数(离散)f=np.数组([1,0,-1,0])g=np.数组([0,1,0,-1])#检查函数是否正交如果是正交(f,g):print(“函数是正交的。”)其他:print(“函数不是正交的。”)

工具书类

[1]Smith,J.O.《离散傅里叶变换(DFT)数学与音频应用》,第二版

发表您的宝贵意见!!!