线性代数Python计算:二次型的标准形计算

这篇具有很好参考价值的文章主要介绍了线性代数Python计算:二次型的标准形计算。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

线性代数Python计算:二次型的标准形计算
为寻求正交变换 y = P T x \boldsymbol{y}=\boldsymbol{P}^\text{T}\boldsymbol{x} y=PTx,使得二次型 f = x T A x f=\boldsymbol{x}^\text{T}\boldsymbol{Ax} f=xTAx的标准形为 f = y T Λ y f=\boldsymbol{y}^\text{T}\boldsymbol{\Lambda y} f=yTΛy,其中 Λ \boldsymbol{\Lambda} Λ为一对角阵,只需要调用numpy.linalg的eigh函数(用法见博文《对称矩阵的对角化》),即可算得。
例1 用Python对二次型 f = − 2 x 1 x 2 + 2 x 1 x 3 + 2 x 2 x 3 f=-2x_1x_2+2x_1x_3+2x_2x_3 f=2x1x2+2x1x3+2x2x3,计算正交变换 y = P T x \boldsymbol{y}=\boldsymbol{P}^\text{T}\boldsymbol{x} y=PTx,及对角阵 Λ \boldsymbol{\Lambda} Λ,使得 f f f的标准形为 f = y T Λ y f=\boldsymbol{y}^\text{T}\boldsymbol{\Lambda y} f=yTΛy

import numpy as np                              #导入numpy
np.set_printoptions(precision=4, suppress=True) #设置输出精度
A=np.array([[0,-2,2],                           #设置齐二次式
            [0,0,2],
            [0,0,0]])
symmetrization(A)                               #对称化
v,P=np.linalg.eigh(A)                           #计算正交阵P及标准形系数
print(v)
print(P)
print(np.matmul(np.matmul(P.T,A),P))

程序的第3~5行就 f = − 2 x 1 x 2 + 2 x 1 x 3 + 2 x 2 x 3 f=-2x_1x_2+2x_1x_3+2x_2x_3 f=2x1x2+2x1x3+2x2x3的各项系数初始化矩阵A,第6行调用函数symmetrization(A)(见博文《齐二次式二次型矩阵计算》)对称化A。第8行调用numpy.linalg的eigh函数计算A的特征值v及正交矩阵P。运行程序,输出

[-2.  1.  1.]
[[-0.5774 -0.4225  0.6987]
 [-0.5774  0.8163  0.0166]
 [ 0.5774  0.3938  0.7152]]
[[-2.  0.  0.]
 [ 0.  1.  0.]
 [ 0.  0.  1.]]

第1行显示 A \boldsymbol{A} A的3个特征值-2,1,1。接下来的3行显示正交阵 P \boldsymbol{P} P,最后3行显示的是 f f f的标准形矩阵 P T A P = ( − 2 0 0 0 1 0 0 0 1 ) \boldsymbol{P}^\text{T}\boldsymbol{AP}=\begin{pmatrix}-2&0&0\\0&1&0\\0&0&1\end{pmatrix} PTAP= 200010001 。即二次型 f f f的标准形为 f = − 2 y 1 2 + y 2 2 + y 3 2 f=-2y_1^2+y_2^2+y_3^2 f=2y12+y22+y32
为判断 n n n元齐二次式 f f f表示的二次型是否为正定,若二次型矩阵为 A \boldsymbol{A} A,只需调用numpy.linalg的
eigvalsh(A) \text{eigvalsh(A)} eigvalsh(A)
该函数的参数A表示对称阵 A \boldsymbol{A} A,返回 A \boldsymbol{A} A n n n个特征值(包含重根,按升序排列)。若所有特征值全部都是正实数,则 f f f是正定的。若所有特征值是负实数,则 f f f为负定的。若特征值中含有0、若干负实数、若干个正实数,则 f f f既非正定亦非负定。
例2 用Python判断齐二次式 f = − 5 x 1 2 − 6 x 2 2 − 4 x 3 2 + 4 x 1 x 2 + 4 x 1 x 3 f=-5x_1^2-6x_2^2-4x_3^2+4x_1x_2+4x_1x_3 f=5x126x224x32+4x1x2+4x1x3的正定性。

import numpy as np                      #导入numpy
A=np.array([[-5,4,4],                   #初始化A
            [0,-6,0],
            [0,0,-4]])
[symmetrization(A)]                     #对称化A
v=np.linalg.eigvalsh(A)                 #计算A的特征值
print(v)

利用代码中的注释信息,不难理解程序代码。运行程序,输出

[-8. -5. -2.]

由于三个特征值均为负实数,故二次型 f f f是负定的。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!文章来源地址https://www.toymoban.com/news/detail-419159.html

到了这里,关于线性代数Python计算:二次型的标准形计算的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 线性代数(六)| 二次型 标准型转换 正定二次型 正定矩阵

    和第五章有什么样的联系 首先上一章我们说过对于对称矩阵,一定存在一个正交矩阵Q,使得$Q^{-1}AQ=B $ B为对角矩阵 那么这一章中,我们讲到,二次型写成矩阵后本质上就是一个对称矩阵,而我们想把它变的标准型,不就正好是一个对角矩阵,那么实际上我们的这个化标准型

    2024年02月03日
    浏览(50)
  • 线性代数-二次型及其正定性

    二次型:含有n个变量的二次齐次多项式 二次型矩阵:x T Ax,其中A为实对称矩阵 任给一个实二次型,就唯一确定一个实对称矩阵;反之,任给一个实对称矩阵,也可以唯一确认一个实二次型,因此,实二次型与实对称矩阵之间存在一一对应关系, 称实对称矩阵A为二次型f的矩阵,二次型f称为

    2024年02月08日
    浏览(48)
  • 【考研数学】线性代数第六章 —— 二次型(3,正定矩阵与正定二次型)

    (1)二次型 f ( x 1 , x 2 , x 3 ) = x 1 2 + 3 x 2 2 + 2 x 3 2 = X T A X f(x_1,x_2,x_3)=x_1^2+3x_2^2+2x_3^2=pmb{X^TAX} f ( x 1 ​ , x 2 ​ , x 3 ​ ) = x 1 2 ​ + 3 x 2 2 ​ + 2 x 3 2 ​ = X T A X 有如下特点: 对任意的 x 1 , x 2 , x 3 x_1,x_2,x_3 x 1 ​ , x 2 ​ , x 3 ​ ,有 f ( x 1 , x 2 , x 3 ) ≥ 0 f(x_1,x_2,x_3)geq0 f ( x 1 ​

    2024年02月07日
    浏览(50)
  • 【考研数学】线性代数第六章 —— 二次型(2,基本定理及二次型标准化方法)

    了解了关于二次型的基本概念以及梳理了矩阵三大关系后,我们继续往后学习二次型的内容。 定理 1 —— (标准型定理)任何二次型 X T A X pmb{X}^Tpmb{AX} X T A X 总可以经过可逆的线性变换 X = P Y pmb{X=PY} X = P Y ,即 P pmb{P} P 为可逆矩阵,把二次型 f ( X ) f(pmb{X}) f ( X ) 化为标准

    2024年02月07日
    浏览(41)
  • 从零开始学数据分析之——《线性代数》第六章 二次型

    6.1.1 二次型及其矩阵 定义:n个变量的二次齐次函数                          称为的一个n元二次型,简称为二次型 二次型转换为矩阵表达式: 1)平方项的系数直接作为主对角元素 2)交叉项的系数除以2放两个对称的相应位置上 二次型的矩阵一定是对称的 二次型

    2024年01月20日
    浏览(42)
  • 线性代数(应用篇):Ch5.相似理论 Ch6.二次型

    1.定义 设 A A A 是 n n n 阶方阵, λ λ λ 是一个数,若存在 n n n 维非零列向量 ξ ξ ξ ,使得 A ξ = λ ξ ( ξ ≠ 0 ) Aξ=λξ quad (ξ≠0) A ξ = λ ξ ( ξ  = 0 ) 则称 λ λ λ 是 A A A 的特征值, ξ ξ ξ 是 A A A 的对应于(属于)特征值 λ λ λ 的特征向量。 注: ①只有方阵才有特征值和特征

    2024年02月03日
    浏览(51)
  • 线性代数(应用篇):第五章:特征值与特征向量、第六章:二次型

    1.定义 设 A A A 是 n n n 阶方阵, λ λ λ 是一个数,若存在 n n n 维非零列向量 ξ ξ ξ ,使得 A ξ = λ ξ ( ξ ≠ 0 ) Aξ=λξ quad (ξ≠0) A ξ = λ ξ ( ξ  = 0 ) 则称 λ λ λ 是 A A A 的特征值, ξ ξ ξ 是 A A A 的对应于(属于)特征值 λ λ λ 的特征向量。 注: ①只有方阵才有特征值和特征

    2024年02月14日
    浏览(49)
  • 线性代数高级--二次型--特征值与特征向量--特征值分解--多元函数的泰勒展开

    目录 二次型 概念 示例   性质和特点 特征值与特征向量 概念 示例  注意  性质和特点  特征值分解 注意 多元函数的泰勒展开  回顾一元函数泰勒展开  多元函数的泰勒展开 概念 二次型是一个关于向量的二次多项式,通常用矩阵表示。 考虑一个n维向量x = [x₁, x₂, ...,

    2024年02月11日
    浏览(55)
  • 线性代数Python计算:矩阵对角化

    线性变换 T T T 的矩阵 A ∈ P n × n boldsymbol{A}in P^{ntimes n} A ∈ P n × n 的对角化,即寻求对角阵 Λ boldsymbol{Lambda} Λ ,使得 A boldsymbol{A} A ~ Λ boldsymbol{Lambda} Λ ,需分几步走: (1)解方程 det ⁡ ( λ I − A ) = 0 det(lambdaboldsymbol{I}-boldsymbol{A})=0 det ( λ I − A ) = 0 ,得根 λ 1 , λ

    2024年02月08日
    浏览(48)
  • 线性代数Python计算:线性方程组的最小二乘解

    给定ℝ上无解线性方程组 A x = b boldsymbol{Ax}=boldsymbol{b} Ax = b ,构造 A T A boldsymbol{A}^text{T}boldsymbol{A} A T A 及 A T b boldsymbol{A}^text{T}boldsymbol{b} A T b ,然后调用博文《线性方程组的通解》定义的mySolve函数,解方程组 A T A x = A T b boldsymbol{A}^text{T}boldsymbol{Ax}=boldsymbol{A}^text{T

    2023年04月08日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包