您现在的位置是:首页 > 正文

线性相关 线性无关

2024-02-01 00:39:39阅读 2

项目github地址:bitcarmanlee easy-algorithm-interview-and-practice
欢迎大家star,留言,一起学习进步

1.线性相关(linearly dependent)与线性无关的(linearly independent)定义

线性相关的定义为:
对于一组向量 v 1 , v 2 , ⋯   , v n v_1, v_2, \cdots, v_n v1,v2,,vn,如果存在一组不全为0的整数 k 1 , k 2 , ⋯   , k n k_1, k_2, \cdots, k_n k1,k2,,kn,使得 k 1 v 1 + k 2 v 2 + ⋯ + k n v n = 0 k_1v_1 + k_2v_2 + \cdots + k_nv_n = 0 k1v1+k2v2++knvn=0成立,那么这组向量是线性相关的。如果只有当 k 1 , k 2 , ⋯   , k n k_1, k_2, \cdots, k_n k1,k2,,kn均为0时等式才成立,该向量组为线性无关的。

2.简单理解

上面的定义不是特别好理解,下面我们换一种更容易理解的方式。
如果有一组不全为0的数,那至少有一个数不为0,假设 k n k_n kn不为0,那么该组向量线性相关。
k 1 v 1 + k 2 v 2 + ⋯ + k n v n = 0 k_1v_1 + k_2v_2 + \cdots + k_nv_n = 0 k1v1+k2v2++knvn=0
可以得知
− k 1 v 1 − k 2 v 2 + − ⋯ − k n − 1 v n − 1 = k n v n -k_1v_1 - k_2v_2 +-\cdots -k_{n-1}v_{n-1} = k_nv_n k1v1k2v2+kn1vn1=knvn

v n = − k 1 k n v 1 − k 2 k n v 2 − ⋯ − k n − 1 k n v n − 1 v_n = -\frac{k_1}{k_n}v_1-\frac{k_2}{k_n}v_2 - \cdots -\frac{k_{n-1}}{k_n}v_{n-1} vn=knk1v1knk2v2knkn1vn1

不难看出, v n v_n vn可以由其他向量的线性组合表示,也就是说这个向量组是线性相关的。

3.实例

再举两个简单例子, v 1 = ( 1 , 0 ) , v 2 = ( 0 , 1 ) v_1 = (1, 0), v_2 = (0, 1) v1=(1,0),v2=(0,1),这就是我们熟悉的笛卡尔坐标系。如果要使得 k 1 v 1 + k 2 v 2 = 0 k_1v_1 + k_2v_2=0 k1v1+k2v2=0,必有 k 1 = k 2 = 0 k_1=k_2=0 k1=k2=0,因此这组向量线性无关。
如果 v 1 = ( 1 , 1 ) , v 2 = ( − 1 , − 1 ) v_1 = (1, 1), v_2 = (-1, -1) v1=(1,1),v2=(1,1),很明显 v 1 + v 2 = 0 v_1 + v_2 = 0 v1+v2=0,此时存在 k 1 = k 2 = 1 k_1 = k_2 = 1 k1=k2=1,使得 k 1 v 1 + k 2 v 2 = 0 k_1v_1 + k_2v_2 = 0 k1v1+k2v2=0,因此这组向量是线性相关的。

4.一些结论

1.当向量组所含向量的个数与向量的维数相等,该向量组线性无关的充要条件为该向量构成的行列式值不为0。
2.由该向量组构成的齐次方程组,如果该其次方程组有非零解,则该向量组线性相关。如果该方程组只有零解,则该向量组线性无关。
3.若向量组的秩等于向量的个数,则该向量组是线性无关。如果秩小于向量的个数,则该向量组线性相关。
4.若向量组所含向量的个数多于向量的维数,该向量组一定线性相关。

网站文章

  • 点云相关理论

    点云相关理论

    再以控制点为基站直接将扫描的多测站的点云数据与其拼接,即可将扫描的所有点云数据转换成工程实际需要的坐标系。由于目标物的复杂性,通常需要从不同方位扫描多个测站,才能把目标物扫描完整,每一测站扫描数据都有...

    2024-02-01 00:39:32
  • c语言合并k个有序链表,经典算法——合并K个有序链表(示例代码)

    c语言合并k个有序链表,经典算法——合并K个有序链表(示例代码)

    一、题目要求:将K个有序链表合并为一个有序链表二、实现方法:方法一:利用最小堆方法用一个大小为K的最小堆(用优先队列+自定义降序实现)(优先队列就是大顶堆,队头元素最大,自定义为降序后,就变成小顶堆,...

    2024-02-01 00:39:04
  • JavaScript数组

    数组1. 定义数组(array)是按次序排列的⼀组值。每个值的位置都有编号(从0开始),整个数组⽤⽅括号表⽰。var arr = ['a', 'b', 'c'];上⾯代码中的 a 、 b 、 c 就构成⼀个数组,两端的⽅括号是数组的标志。 a 是0号位置, b 是1号位置, c 是2号位置。除了在定义时赋值,数组也可以先定义后赋值。var arr = []; arr[0] = ...

    2024-02-01 00:38:58
  • AVFoundation的介绍

    AVFoundation的介绍

    一、简述 AVFoundation是一个OC媒体数据的高级框架。AVFoundation的构建考虑到了目前的硬件环境和应用程序,其设计过程高度依赖多线程机制。充分利用了多核硬件的优势并大量使用block和GCD机制,将复杂的计算机进程放到了后台线程运行。会自动提供硬件加速操作,确保在大部分设备上应用程序能以最佳性能运行。该框架就是针对64位处理器设计的,可以发挥64位处理器的所有优势。 二

    2024-02-01 00:38:50
  • excel粘贴时出现故障_Word粘贴时出现“文件未找到:MathPage.WLL”的解决方案

    excel粘贴时出现故障_Word粘贴时出现“文件未找到:MathPage.WLL”的解决方案

    问题:每次装完MathType后,在word里面进行粘贴操作时,总是出现“运行时错误‘53’:文件未找到:MathPage.WLL”。面对这种情况每次都要花点时间找真正的解决方案,然而并不是所有人提供...

    2024-02-01 00:38:43
  • 输出1~n的全排列(递归法) 热门推荐

    #include #include #include #include using namespace std; int a[1000]={0};//保存数列的数组,默认每个位置都是0 int book[1000]={0};//记录一个数有没有在数组里 int n;//1~n void A(int pos)//向a[pos]填数 { if(pos==n+1)//递归边界

    2024-02-01 00:38:14
  • oracle commit提交到底作了什么

    oracle commit所作的工作如下:1,产生一个scn 与此事务相关联的undo tablespace的itl标志为提交即flag为-c--; 并且为此事务分配一个唯一的scn并记录到undo tablespace的事...

    2024-02-01 00:38:07
  • JAVA继承和多态详细讲解

    JAVA继承和多态详细讲解

    面向对象编程的重要知识:继承和多态。通过类的继承机制,可以使用已有的类为基础派生出新类,无需编写重复的程序代码,很好地实现程序代码复用。多态是面向对象编程中继封装和继承之后的另一大特征,它具体是指同一...

    2024-02-01 00:37:38
  • Java二进制小数表示_《Java编程的逻辑》笔记9--小数的二进制表示

    Java二进制小数表示_《Java编程的逻辑》笔记9--小数的二进制表示

    小数计算为什么会出错?简要答案实际上,不是运算本身会出错,而是计算机根本就不能精确的表示很多数,比如0.1这个数。计算机是用一种二进制格式存储小数的,这个二进制格式不能精确表示0.1,它只能表示一个非...

    2024-02-01 00:37:29
  • C#使用OpenCVSharp进行轮廓检测

    在计算机视觉领域中,轮廓检测是一项常见的任务,它可以帮助我们找到图像中的物体边缘或形状边界。在本文中,我们将介绍如何使用C#和OpenCVSharp库实现轮廓检测。在上述代码中,我们首先读取了输入图像...

    2024-02-01 00:37:23