线性代数——二次型

2023-11-19

一:通过矩阵研究二次方程

二次型的定义:

把含有n个变量的二次齐次函数或方程称为二次型,例如:

f(x_{1},x_{2},...,x_{n})=a_{11}x_{1}^{2}+a_{22}x_{2}^{2}+...+a_{nn}x_{n}^{2}+2a_{12}x_{1}x_{2}+2a_{13}x_{1}x_{3}+...+2a_{n-1}x_{n-1}x_{n}

 二次型可以用矩阵来表示:

x^{2}+y^{2}-2xy=1可以表示为\begin{bmatrix} x & y \end{bmatrix}\begin{bmatrix} 1 & -1\\ -1 & 1 \end{bmatrix}\begin{bmatrix} x\\y \end{bmatrix}=1

更一般的情况:

ax^{2}+2bxy+cy^{2}=1可以表示为\begin{bmatrix} x & y \end{bmatrix}\begin{bmatrix} a & b\\ b & c \end{bmatrix}\begin{bmatrix} x\\y \end{bmatrix}=1

令:X=\begin{bmatrix} x\\y \end{bmatrix}A=\begin{bmatrix} a & b\\ b & c \end{bmatrix},则上式表示为X^{T}AX,这就是我们常见的二次型表示方式。

 

在《Linear Algebra and Its Applications》中译本《线性代数及其应用》中,二次型的定义如下:

在向量计算中常遇到的X^{T}X,求向量元素的平方和,这类平方和及其更一般形式称为二次型。

R^{n}上的一个二次型是定义在R^{n}上的函数,其在向量x处的值为:

                                                                     Q(x)=X^{T}AX

其中矩阵A是一个对称矩阵,矩阵A称为关于二次型的矩阵。

二次型是为研究二次函数或二次多项式而生,这样就能理解《线性代数及其应用》中二次型的定义,以及一些二次型的性质。

 

二:规范化

二次型或二次齐次方程有着显著的几何意义,一个二元二次函数是二维空间的一个圆,椭圆或双曲线:

x^{2}+y^{2}=1的一个圆,可以表示为\begin{bmatrix} x & y \end{bmatrix}\begin{bmatrix} 1 & 0\\ 0 & 1 \end{bmatrix}\begin{bmatrix} x\\y \end{bmatrix}=1

 

x^{2}+\frac{1}{4}y^{2}=1的椭圆可以表示为\begin{bmatrix} x & y \end{bmatrix}\begin{bmatrix} 1 & 0\\ 0 & \frac{1}{4} \end{bmatrix}\begin{bmatrix} x\\y \end{bmatrix}=1

 

一个 x^{2}-y^{2}=1的双曲线可以表示为\begin{bmatrix} x & y \end{bmatrix}\begin{bmatrix} 1 & 0\\ 0 & -1 \end{bmatrix}\begin{bmatrix} x\\y \end{bmatrix}=1

 

 这样一看,圆,椭圆,双曲线是线性关系,通过矩阵变换可以相互转化,准确说是一种仿射,它们都是圆锥体与平面的交线,所以统称为圆锥曲线。

对于一个倾斜的椭圆\frac{5}{8}x^{2}-\frac{3}{4}xy+\frac{5}{8}y^{2}=1,要将其扶正

除了通过坐标变化,解析几何的方法外,可以对 其二次型矩阵,进行特征值分解:

a = np.array([[5/8, -3/8], [-3/8, 5/8]])
eval_sigma1,evec_u = np.linalg.eigh(a)

其特征值为:\begin{bmatrix} 1 & 0\\ 0& \frac{1}{4} \end{bmatrix},而这个矩阵就是椭圆扶正后的二次型矩阵

 

 

 三:正定二次型

对于一个二次型Q

a.如果对所有的x\neq 0,有Q(x)>0,则二次型Q称为正定的

b.如果对所有的x\neq 0,有Q(x)<0,则二次型Q称为负定的

c.如果Q(x)既有正值又有负值,则二次型Q称为不定的

d.如果对所有的xQ(x)\geqslant 0,则Q称为半正定的,如果对所有的xQ(x)\leqslant 0,则Q称为半负定的

 

二次型与矩阵A的特征值的关系:

a.当且仅当矩阵A的特征值全为正数,则二次型Q为正定的

b.当且仅当矩阵A的特征值全为负数,则二次型Q为负定的

c.当且仅当矩阵A的特征值既有负数又有正数,则二次型Q为不定的

 

由于任意的二次型可以通过二次型矩阵的特征值分解(二次型的矩阵都是对称矩阵,对称矩阵都可以进行特征值分解),来扶正:

                                                             \begin{bmatrix} x_{1} & x_{2} & ... & x_{n} \end{bmatrix}\begin{bmatrix} \lambda_{1} & 0 & 0 & 0\\ 0& \lambda_{2} & 0 & 0\\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & 0 & \lambda_{n} \end{bmatrix}\begin{bmatrix} x_{1}\\ x_{2}\\ \vdots \\ x_{n} \end{bmatrix}

 所以任意的二次型可以转换为上述特征值的表示形式,以方程形式表示为:

                                                          f(x_{1},x_{2},...,x_{n})=\lambda_{1}x_{1}^{2}+\lambda_{2}x_{2}^{2}+...+\lambda_{n}x_{n}^{2}

当特征值都为正时,f(x_{1},x_{2},...,x_{n})=\lambda_{1}x_{1}^{2}+\lambda_{2}x_{2}^{2}+...+\lambda_{n}x_{n}^{2}> 0恒成立

当特征值都为负时,f(x_{1},x_{2},...,x_{n})=\lambda_{1}x_{1}^{2}+\lambda_{2}x_{2}^{2}+...+\lambda_{n}x_{n}^{2}< 0恒成立

 当特征值有正有负时,f(x_{1},x_{2},...,x_{n})的值,正负都有

这样就证明了二次型的矩阵特征值与其二次型的正定关系。

 

四:文中图片源码

文中的图片使用Python制作,代码如下:

from matplotlib.patches import Ellipse, Circle
import matplotlib.pyplot as plt
import matplotlib
import math
import numpy as np

def picture1():
    fig = plt.figure()
    ellip1 = Ellipse(xy = (0.0, 0.0), width = 2, height = 4, angle = -45, facecolor = 'yellow', alpha = 0.3)
    ellip2 = Ellipse(xy = (0.0, 0.0), width = 2, height = 4, angle = 0, facecolor = 'blue', alpha = 0.3)
    ax = fig.add_subplot(111)
    ax.add_patch(ellip1)
    ax.add_patch(ellip2)

    ax.spines['right'].set_color('none')  
    ax.spines['top'].set_color('none')  
    ax.spines['bottom'].set_position(('data',0))  
    ax.spines['left'].set_position(('data',0))  
    ax.xaxis.set_ticks_position('bottom')
    ax.yaxis.set_major_locator(matplotlib.ticker.MultipleLocator(1))

    plt.axis('scaled')
    plt.show()

def Draw_Circle():
    x = y = np.arange(-2, 2, 0.1)
    x, y = np.meshgrid(x, y)
    fig = plt.figure()
    ax = fig.add_subplot(111)
    ax.contour(x, y, x**2 + y**2, [1], alpha = 0.3)

    ax.spines['right'].set_color('none')  
    ax.spines['top'].set_color('none')  
    ax.spines['bottom'].set_position(('data',0))  
    ax.spines['left'].set_position(('data',0))  
    ax.xaxis.set_ticks_position('bottom')
    ax.yaxis.set_major_locator(matplotlib.ticker.MultipleLocator(1))
    ax.xaxis.set_major_locator(matplotlib.ticker.MultipleLocator(1))

    plt.axis('scaled')
    plt.show()

def Draw_ellipse():
    a = math.cos(-math.pi/4)
    b = math.sin(-math.pi/4)
    x = y = np.arange(-3, 3, 0.1)
    x, y = np.meshgrid(x, y)
    fig = plt.figure()
    ax = fig.add_subplot(111)
    ax.contour(x*a + y*b, x*b - y*a, x**2 + (1/4)*y**2, [1], alpha = 0.3)
    ax.contour(x, y, x**2 + (1/4)*y**2, [1], alpha = 0.3)
    #ax.contour(x, y, x**2 + y**2, [1], alpha = 0.3)
    #ax.contour(x, y, (5/8)*x**2 - (3/4)*x*y + (5/8)*y**2, [1], alpha = 0.3)

    ax.spines['right'].set_color('none')  
    ax.spines['top'].set_color('none')  
    ax.spines['bottom'].set_position(('data',0))  
    ax.spines['left'].set_position(('data',0))  
    ax.xaxis.set_ticks_position('bottom')
    ax.yaxis.set_major_locator(matplotlib.ticker.MultipleLocator(1))
    ax.xaxis.set_major_locator(matplotlib.ticker.MultipleLocator(1))

    plt.axis('scaled')
    plt.show()

def Draw_hyperbola():
    a = [i / 100 for i in range(100, 300, 1)]
    b = [math.sqrt(i**2 - 1) for i in a]
    fig = plt.figure()
    ax = fig.add_subplot(111)
    ax.plot(a, b, color = "blue", alpha = 0.3)
    ax.plot(a, [-i for i in b], color = "blue", alpha = 0.3)
    ax.plot([-i for i in a], b, color = "blue", alpha = 0.3)
    ax.plot([-i for i in a], [-j for j in b], color = "blue", alpha = 0.3)

    ax.spines['right'].set_color('none')  
    ax.spines['top'].set_color('none')  
    ax.spines['bottom'].set_position(('data',0))  
    ax.spines['left'].set_position(('data',0))  
    ax.xaxis.set_ticks_position('bottom')
    ax.yaxis.set_major_locator(matplotlib.ticker.MultipleLocator(1))

    plt.show()

if __name__ == "__main__":
    a = np.array([[5/8, -3/8], [-3/8, 5/8]])
    eval_sigma1,evec_u = np.linalg.eigh(a)
    print(eval_sigma1)
    print(evec_u)
    Draw_ellipse()

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

线性代数——二次型 的相关文章

  • 线性代数的本质(十一)——复数矩阵

    文章目录 复数矩阵 附录 极大线性无关组 向量叉积 复数矩阵 矩阵 A A A 的元素 a i j
  • KaTeX数学公式输入

    序号 运算符 输入 举例 举例代码 1 x y
  • 叉积的意义

    我们知道 向量的叉积可以帮助我们求出一个和已知两个向量构成的平面相互垂直的另一个向量 例如求法向量 而且一般来说 都是求三维空间的向量的叉积 下面我们要讨论的就是各种 为什么如此 考虑两个相互不平行的三维向量 它们的叉积 以行列式形式来表示
  • 信息学奥赛一本通C++语言——1111:不高兴的津津

    题目描述 津津上初中了 妈妈认为津津应该更加用功学习 所以津津除了上学之外 还要参加妈妈为她报名的各科复习班 另外每周妈妈还会送她去学习朗诵 舞蹈和钢琴 但是津津如果一天上课超过八个小时就会不高兴 而且上得越久就会越不高兴 假设津津不会因为
  • 高等数学——驻点,拐点,极值点

    一 定义不同 1 极值点 若f a 是函数f x 的极大值或极小值 则a为函数f x 的极值点 极大值点与极小值点统称为极值点 极值点是函数图像的某段子区间内上极大值或者极小值点的横坐标 极值点出现在函数的驻点 导数为0的点 或不可导点处
  • (邱维声)高等代数课程笔记:极大线性无关组,向量组的秩

    极大线性无关组 向量组的秩 quad 一般地 设 V V V 是数域 K K K 上的一个线性空间
  • 宋浩线性代数笔记(五)矩阵的对角化

    本章的知识点难度和重要程度都是线代中当之无愧的T0级 对于各种杂碎的知识点 多做题 复盘才能良好的掌握 良好掌握的关键点在于 所谓的性质A与性质B 是谁推导得谁
  • 18. 线性代数 - 线性变换

    文章目录 线性空间 线性变换 线性变换的几何意义 特征值与特征向量 NumPy的矩阵操作 Hi 你好 我是茶桁 经历了几节线性代数课程之后 终于咱们到了最后一节课了 本节课的内容说多不多 说少也不少 我们先是要理解一下线性空间和线性变换 并
  • 线性代数---之正交向量

    转载 百度百科 正交向量 编辑 本词条由 科普中国 百科科学词条编写与应用工作项目审核 正交向量 是一个数学术语 指点积为零的两个或多个向量 几何向量的概念在 线性代数中经由抽象化 得到更一般的向量概念 此处向量定义为 向量空间的元素 要注
  • 线性代数的本质(九)——二次型与合同

    文章目录 二次型与合同 二次型与标准型 二次型的分类 度量矩阵与合同 二次型与合同 二次型与标准型 Grant 二次型研究的是二次曲面在不同基下的坐标变换 由解析几何的知识 我们了解到二次函数的一次项和常数项只是对函数图像进行平移 并不会改
  • 【MATLAB】字符串的处理及矩阵的初步学习

    欢迎访问我的个人网站 reality2ideal xyz 内容在CSDN和个人网站上同步更新 字符串处理 字符串矩阵 gt gt ch 123456 qwerty ch 2 6 char 数组 123456 qwerty 字符串矩阵的列数要
  • 计算机二级python经典真题

    计算机二级python经典考题 1 键盘输入正整数n 按要求把n输出到屏幕 格式要求 宽度为20个字符 减号字符 右填充 右对齐 带千位分隔符 如果输入正整数超过20位 则按照真实长度输出 例如 键盘输入正整数n为1234 屏幕输出 1 2
  • 问题 D: 稀疏矩阵类型判断

    题目描述 输入一个稀疏矩阵 输出其类型 类型包括 上三角 对角线及其右上方的元素非0 其它元素为0 下三角 对角线及其左下方的元素非0 其它元素为0 对称 沿对角线对称的元素非0且相等 空矩阵 所有元素都为0 其它为普通矩阵 输入 输入包括
  • Gauss_Seidel method with python

    Gauss Seidel method with python from wikipedia https en wikipedia org wiki Gauss E2 80 93Seidel method import numpy as n
  • 万向锁,简单表述,一文看懂

    万向锁问题 看了下百度知乎 居然 很少有说清楚的 想起自己第一次接触的时候 也是一头雾水 特此解释 1 什么是万向锁问题 欧拉角顺序有很多 当中比较常用的 一种 便是用 偏航 俯仰 滚转 yaw pitch roll 三个角度来描述一个旋转
  • TRMF 辅助论文:最小二乘法复现TRMF

    1 目标函数 总 论文笔记 Temporal Regularized Matrix Factorization forHigh dimensional Time Series Prediction UQI LIUWJ的博客 CSDN博客 1
  • 机器学习入门——线性代数简单回顾

    本节课程回顾了一些简单但常用的线性代数知识 很基础的 我会直接跳过 并对矩阵的一些运算进行编程实现 3 1 矩阵的加法和标量乘法 矩阵加法 要求行列数要相等 然后 每个元素对应相加 exp 矩阵的标量乘法 每个元素都要乘 exp 3 2 矩
  • 近日,小序一

    最近啊 想明白一些事情 人活着 为了什么 为名利 为欲望 还是为来生 为名利者 争权夺势 终会迷失本心 为欲望者 浑浑噩噩 终会误入歧途 唯有为来生者 无欲无求 一心向善 一心向善者 是灵魂富有的人 但往往生活贫瘠 所以 我为什么 你又为什
  • 【二分查找】【z型搜索】LeetCode240:搜索二维矩阵

    LeetCoe240搜索矩阵 作者推荐 贪心算法 中位贪心 执行操作使频率分数最大 本文涉及的基础知识点 二分查找算法合集 题目 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 该矩阵具有以下特性 每
  • MIT_线性代数笔记:复习二

    目录 第二单元主要内容 例题 第二单元主要内容 正交矩阵 Q 用矩阵形式描述正交性质 投影矩阵 P 最小二乘法 在方程无解时求 最优解 Gram Schmidt 正交化 从任意一组基得到标准正交基 策略是从向量 中减去投影到其它向量方向的分

随机推荐

  • YOLOv5 提升模型训练结果小技巧

    一 数据集 1 每类图片数 建议 gt 1500张 2 每类实例数 推荐每类标签实例数 gt 10000 3 图片多样性 必须代表部署环境 对于现实世界我们推荐图片来自一天中不同时间 不同季节 不同天气 不同光照 不同角度和不同相机等 4
  • 线程封闭概念

    线程封闭概念 为什么要有线程封闭这个概念呢 多线程中访问共享可变数据时 涉及到线程间数据同步的问题 并不是所有时候都需要共享数据 所以线程封闭概念就出来了 在Java中线程封闭该怎么做呢 可以通过两个方法来做 ThreadLocal 1 T
  • 34 openEuler使用LVM管理硬盘-创建并挂载文件系统

    文章目录 34 openEuler使用LVM管理硬盘 创建并挂载文件系统 34 1 创建文件系统 34 2 手动挂载文件系统 34 3 自动挂载文件系统 34 openEuler使用LVM管理硬盘 创建并挂载文件系统 在创建完逻辑卷之后 需
  • android代码获取当前package的de目录

    获取de目录首先要获取DE CONTEXT Context deContext getApplicationContext createDeviceProtectedStorageContext 然后通过DE CONTEXT获取de目录 S
  • SpringBoot + MyBatis-plus + Druid 实现简单增删查改、动态条件查询和分页功能

    本文主要讲解 SpringBoot集成Mybatis plus 数据库连接池使用alibaba的druid 实现简单增删查改 动态条件查询和分页功能 项目整体结构 项目添加相关框架依赖 pom xml
  • 辐射强度、辐亮度、辐照度——一文搞定

    先写定义 上图是从网上看到的并重写的 其中我们最容易混淆的就是辐射强度 辐亮度 辐照度的关系 如果我们没有接触专业领域 那么我们可能接触最多的就是辐射强度 而这种现象是不对的 因为我们一般考虑的均为这光好强呀 照得屋里特别亮 这里的光亮 我
  • untiy的纹理格式介绍

    Desktop RGB Compressed DXT1 压缩的RGB纹理 这是最常见的漫反射纹理格式 4位 像素 32 KB 256x256 RGBA Compressed DXT5 压缩的RGBA纹理 这是漫反射和高光控制纹理的主要格式
  • 如何区分网线是几类的_怎么看网线是几类?

    我来回答下本行业的问题 我是做智能化弱电的 在弱电监控系统中网线是连接弱电局域网中必不可少的材料 也是综合布线系统中最常用的一种传输材质 网线是由4对线8芯组成 每芯都有颜色区分 用于数据传输 网线的分类 网线按照性能划分 可以分为五类线
  • 基于sklearn的简单分类器

    基于sklearn的简单分类器 输入 输出 3 1 0 2 5 1 1 8 1 6 4 0 5 2 0 3 5 1 4 7 1 4 1 0 7 5 已知部分输入和部分输出求当输入为7 5时输出为多少 我们观察上面的规律不难发现 当输入的第一
  • react 使用 scss

    react 使用 scss 日常记录开发中遇到的坑 1 使用 npm install sass loader node sass S 进行安装 2 在页面中直接使用 有时候可以 有时候不行 原因 我个人觉得安装的两个插件本版兼容问题 nod
  • vue,vue-cli和@vue/cli是什么关系?有什么区别?

    vue是构建用户界面的渐进式JavaScript 框架 vue cli是vue的一个官方脚手架工具 快速工程化命令工具 用来帮助程序员们快速搭建基于vue框架的开发环境 vue有很多脚手架工具 vue cli只是其中一种 侧重于单页面应用
  • pytorch 取对角线元素/矩阵对角线元素置0

    pytorch 取对角线元素 矩阵对角线元素置0 使用 torch diag 取对角线元素 使用 torch diag embed 恢复维度 import torch a torch randn 3 3 print a tensor 0 7
  • 在Echarts中的tooltip上添加点击按钮

    需求 在Echarts的tooltips中添加点击按钮并可以鼠标悬停点击该按钮 功能实现 在option中的tooltip添加enterable true的属性 表示鼠标可以移入tooltip中 再在formatter中添加
  • 从Java到区块链:如何成为区块链开发人员

    最近这些天 区块链是每个开发人员的谈资 来自各个领域的许多软件开发商现在正试图进入区块链市场 我们与Mobilunity的区块链软件开发人员Eugene Kyselev 讨论了他是如何走出区块链开发方面的第一步的 希望对大家有所帮助 JAX
  • 上海链节科技:通证经济的到来,拉开了去中心化协作序幕

    国家在肯定扶持区块链技术的同时 也针对币圈进行了强监管 区块链行业经历疯狂到沉默 开始回归理性 重新审视技术带来的变革 技术是无罪的 分布式存储 去中心化 智能合约 加密 挖矿等种种技术或设计理念 都是为了保障信任 实现价值传递 降低交易成
  • Dockerfile: ENTRYPOINT vs CMD

    Dockerfile ENTRYPOINT和CMD的区别 dongmao zhang software engineer 132 人赞同了该文章 翻译 Dockerfile ENTRYPOINT vs CMD 在我们查阅Dockerfile
  • ANDROID

    1 环境构建 2 模拟测试 3 Activity 4android中的资源 5 UI 6 各种控件
  • 剑指offer第二版面试题20:表示数值的字符串(java)

    题目描述 请实现一个函数用来判断字符串是否表示数值 包括整数和小数 例如 字符串 100 5e2 123 3 1416 和 1E 16 都表示数值 但是 12e 1a3 14 1 2 3 5 和 12e 4 3 都不是 分析 1 在数值之前
  • ubuntu18.04上安装TensorFlow2.0

    推特上几乎每天都有关于深度学习中Keras TensorFlow哪个个才是最好的框架的口水战 2019年后 这将不在是个问题 2019年初 tf keras 子模块已引入TensorFlow v1 10 0中 现在 在TensorFlow
  • 线性代数——二次型

    一 通过矩阵研究二次方程 二次型的定义 把含有n个变量的二次齐次函数或方程称为二次型 例如 二次型可以用矩阵来表示 可以表示为 更一般的情况 可以表示为 令 则上式表示为 这就是我们常见的二次型表示方式 在 Linear Algebra a