线性代数(第六章:二次型)

embedded/2024/11/24 21:25:44/

一、二次型的基础知识

1. 二次型

定义:含有 n 个变量 x1 , x2 ,…, xn 的二次齐次函数

  • f = a11·x12 + a22·x22 + … + ann·xn2 + 2a12·x1x2 + 2a13·x1x3 + … + 2a(n-1),n·xn-1xn
  • f = xTAx(AT = A),x = (x1 , x2 ,…, xn)T
  • f = Σi=1nΣj=1n aijxixj

称 A 是二次型的矩阵,r(A) 是二次型的秩,A 是实对称矩阵。

注意:二次型的矩阵是实对称矩阵,且唯一。

2. 标准型

二次型的标准型只含有平方项,即 f(x1 , x2 ,…, xn) = d1·x12 + d2·x22 + … + dn·xn2

如何将二次型化为标准型?

1)正交变换法

  • 求特征值
  • 求特征向量
  • 正交化、单位化得到 η1 , η2 , η3
  • 拼起来,令 Q = (η1 , η2 , η3) ,则 x = Qy 就是正交变换

若 f = xTAx 经可逆线性变换 x = Qy 后所得二次型为 f = yTBy ,则变换前二次型对应矩阵 A ,变换后二次型对应矩阵 B 及线性变换的可逆矩阵 Q 之间满足:QTAQ = B(即合同关系)

注:只有当 Q 可逆时,变换前后的二次型对应矩阵才具有合同关系,此时它们才会有相同的正负惯性指数与秩。

2)配方法

(a + b + c)2 = a2 + b2 + c2 + 2ab + 2ac + 2bc

配方训练:

f(x1 , x2 , x3) = x12 + 5·x22 + 5·x32 + 2x1x2 - 4x1x3
= (x1 + x2 - 2·x3)2 + 4·x22 + x32 + 4x2x3
= (x1 + x2 - 2·x3)2 + (2x2 + x3)2

令 y1 = x1 + x2 - 2·x3 ,y2 = 2x2 + x3 ,得到标准型为 y12 + y22

3)总结

  • 二次型对应实对称矩阵,标准型对应对角矩阵
  • 二次型化为标准型的过程就是将实对称矩阵化为对角矩阵的过程(即相似对角化)
  • 二次型化为标准型方法:
    正交变换法(标准型平方项前系数就是特征值)
    配方法(标准型平方项前系数不是特征值)
  • 标准型不唯一

3. 规范型

在标准型中,若平方项的系数 di 为 1,-1,0 ,即 xTAx = x12 + x22 +…+ xp2 - xp+12 - xp+22 -…- xp+q2 ,则称其为二次型的规范型。

4. 惯性指数与惯性定理

惯性指数〙:在标准型中,正平方项的个数称为正惯性指数,记为 p ;负平方项的个数称为负惯性指数,记为 q 。

求惯性指数方法:

  • 求特征值后,数正负的个数
  • 配方法后,数平方项前正负的个数

惯性定理〙:二次型经过可逆坐标变换后,正、负惯性指数保持不变,且 p + q = r(f) = r(A)

【总结】:


http://www.ppmy.cn/embedded/140210.html

相关文章

基于Java Springboot高校教务管理系统

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 数据…

1.langchain中的prompt模板(Prompt Templates)

本教程将介绍如何使用 LangChain 库中的提示模板(PromptTemplate)来生成和处理文本。我们将通过具体的代码示例来解释程序的运行逻辑。 1. 导入必要的库 首先,从 langchain_core.prompts 模块中导入 PromptTemplate 类。 from langchain_c…

算法——有效的字母异位词(leetcode242)

有效的字母异位词即使用一组字母的每个字母排列组合成新的字母组合新的字母组合的字母种类及个数要与原字母组合相同(官方解释:字母异位词是通过重新排列不同单词或短语的字母而形成的单词或短语,并使用所有原字母一次。) 题目给定两个字符串…

链表算法速成计划

链表算法速成计划 1.准备工作 1.1创建链表节点结构体 struct ListNode {int val;ListNode* next;ListNode() : val(0), next(NULL) {}ListNode(int x) : val(x), next(NULL) {}ListNode(int x, ListNode* next) : val(x), next(next) {} };1.2 在IDE中创建链表代码 ListNod…

在有网络连接的机器上打包 electron 及其依赖项,在没有网络连接的机器上安装这些离线包

好的,下面是完整的安装语句,分为两部分:在有网络连接的机器上打包 electron 及其依赖项,在没有网络连接的机器上安装这些离线包。 在有网络连接的机器上打包 electron 及其依赖项 # 创建一个目录来存放离线包 mkdir offline-pac…

Python设计模式详解之5 —— 原型模式

Prototype 设计模式是一种创建型设计模式,它通过复制已有的实例来创建新对象,而不是通过从头实例化。这种模式非常适合对象的创建成本较高或者需要避免复杂的构造过程时使用。Prototype 模式提供了一种通过克隆来快速创建对象的方式。 1. Prototype 模式…

【python系列】python数据类型之字典

掌握 Python 字典(Dictionary)数据类型 Python 中的字典(Dictionary)是一种非常重要的数据结构,用于存储键值对。它类似于现实生活中的字典,允许快速查找对应的值。本文将详细介绍字典的定义、常用操作及其…

大数据技术之SparkCore

RDD概述 什么是RDD RDD(Resilient Distributed Dataset)叫做弹性分布式数据集,是Spark中最基本的数据抽象。代码中是一个抽象类,它代表一个弹性的、不可变、可分区、里面的元素可并行计算的集合。 RDD五大特性 RDD编程 RDD的创…