我们知道平面上二次曲线的一般方程是:
a11x2+2a12xy+a22y2+2a1x+2a2y+a0=0,(1)a_{11}x^2+2a_{12}xy+a_{22}y^2+2a_{1}x+2a_{2}y+a_{0}= 0, (1) a11​x2+2a12​xy+a22​y2+2a1​x+2a2​y+a0​=0,(1)
其中a11,a12,a22a_{11},a_{12},a_{22}a11​,a12​,a22​不全为零。
我们常用的一个方法是先利用转轴变换,坐标旋转角则可用以下公式得到:
cot(2θ)=a11−a22a12,(2)cot(2\theta)=\frac{a_{11}-a_{22}}{a_{12}} , (2)cot(2θ)=a12​a11​−a22​​,(2)
但是之后的过程略显复杂,故本文采用不变量的方法来对二次曲线方程进行化简,并将结合MATLAB进行实现。

1.数学原理

二次曲线的不变量和半不变量为:
I1=a11+a22,(3)I_{1}=a_{11}+a_{22},(3) I1​=a11​+a22​,(3)
I2=∣a11a12a12a22∣,(4)I_{2}=\left| \begin{matrix} a_{11} & a_{12} \\ a_{12} & a_{22} \\ \end{matrix} \right|,(4) I2​=∣∣∣∣​a11​a12​​a12​a22​​∣∣∣∣​,(4)
I3=∣a11a12a1a12a22a2a1a2a0∣,(5)I_{3}=\left| \begin{matrix} a_{11}&a_{12}&a_{1}\\ a_{12}&a_{22}&a_{2}\\ a_{1}&a_{2}&a_{0}\\ \end{matrix} \right|,(5) I3​=∣∣∣∣∣∣​a11​a12​a1​​a12​a22​a2​​a1​a2​a0​​∣∣∣∣∣∣​,(5)
K1=∣a11a1a1a0∣+∣a22a2a2a0∣,(6)K_{1}=\left| \begin{matrix} a_{11} & a_{1} \\ a_{1} & a_{0} \\ \end{matrix} \right|+\left| \begin{matrix} a_{22} & a_{2} \\ a_{2} & a_{0} \\ \end{matrix} \right|,(6) K1​=∣∣∣∣​a11​a1​​a1​a0​​∣∣∣∣​+∣∣∣∣​a22​a2​​a2​a0​​∣∣∣∣​,(6)
可以由不变量和半不变量就能完全确定二次曲线的类型和形状,即为二次曲线的化简式,如下表【1】所示:

型别 类别 识别标记 化简后方程
椭圆型
I2>0I_{2}>0I2​>0
(1) 椭圆;
(2) 虚椭圆;
(3) 一个点
I3与I1异号I_{3}与I_{1}异号I3​与I1​异号I3与I1同号I_{3}与I_{1}同号I3​与I1​同号I3=0I_{3}=0I3​=0 λ1x∗2+λ2y∗2+I3I1=0\lambda_{1}x^{*^{2}}+\lambda_{2}y^{*^{2}}+\frac{I_{3}}{I_{1}}=0λ1​x∗2+λ2​y∗2+I1​I3​​=0其中λ1,λ2是多项式其中\lambda_{1},\lambda_{2}是多项式其中λ1​,λ2​是多项式λ2−I1λ+I2的两个实根\lambda^2-I_{1}\lambda+I_{2}的两个实根λ2−I1​λ+I2​的两个实根
双曲型
I2&lt;0I_{2}&lt;0I2​<0
(4) 双曲线;
(5) 一对相交直线
I3≠0I_{3}≠0I3​̸​=0I3=0I_{3}=0I3​=0 同上
抛物型
I2=0I_{2}=0I2​=0
(6) 抛物线 I3≠0I_{3}≠0I3​̸​=0 I1y∗2±2−I3I1x∗=0I_{1}y^{*^{2}}±2\sqrt{\frac{-I_{3}}{I_{1}}}x^{*}=0I1​y∗2±2I1​−I3​​​x∗=0
同上 (7) 一对平行直线;
(8) 一对虚平行直线;
(9) 一对重合直线
I3=0,K1&lt;0I_{3}=0,K_{1}&lt;0I3​=0,K1​<0I3=0,K1&gt;0I_{3}=0,K_{1}&gt;0I3​=0,K1​>0I3=0,K1=0I_{3}=0,K_{1}=0I3​=0,K1​=0 I1y∗2+K1I1=0I_{1}y^{*^{2}}+\frac{K_{1}}{I_{1}}=0I1​y∗2+I1​K1​​=0

【表1】 二次曲线的不变量与曲线的类型和形状的关系

2.代码实现

MATLAB 中可以提取方程左端展开后的多项式的系数,在由系数计算不变量和半不变量,对比【表1】得到二次曲线方程的化简后方程,代码如下:

在运行时输入二次曲线方程 f(x,y) = 0 的左端,运行结果示例如下图所示:

代码文件可以在下面链接中下载:
https://download.csdn.net/download/m0_43484109/10861992

利用MATLAB进行二次曲线方程的正交变换化简相关推荐

  1. “后序遍历二叉运算树进行Lambda演算的化简”带来的联系

    今天闲来无事,想到一个自以为绝妙的想法,那就是用后序遍历二叉树Lambda演算的化简. 数据结构与算法中,我们想写个计算器就必须遇到一个问题,表达式求值!其实表达式很多就是我们所谓的现实生活中的问题解 ...

  2. matlab 标准二次型,matlab用正交变换化二次型为标准形

    1.金锄头文库是"C2C"交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时 ...

  3. 如何利用matlab求解方程

    如何利用matlab求解方程 1.    前言 作为三大数学软件之一,matlab在数值计算方法的能力首屈一指.求解方程是工科学习和工程计算中最基础.最常见的问题.掌握利用现代化工具求解方程的方法对于 ...

  4. matlab模拟线圈电磁场,利用MATLAB的PDE工具箱对电场和磁场进行模拟

    中学物理Vol. 32 No.巧 疑的态度,认为弊大于利,笔者认为这些想法不无道理,只是大家的关注点应该在于如何更好发挥它的优势,而避免它的不足.在实践的过程中笔者有以下心得和体会,与大家分享: 3, ...

  5. matlab ploty,matlab绘制函数 如何利用matlab的ploty

    最近有网友提出"matlab绘制函数 如何利用matlab的ploty"等问题,小小知识站提取了各大知名网站有关"matlab绘制函数 如何利用matlab的ploty& ...

  6. matlab行星运动轨迹仿真动画,利用Matlab可视化功能实现微分方程求解行星运动轨迹...

    利用Matlab可视化功能实现微分方程求解行星运动轨迹 1.背景 在物理学璀璨的发展史上,物理学家花了很长时间研究我们头顶浩瀚的星空,试图探究星星的运行模式,以及地球自身的运动模式.其中不乏像亚里士多 ...

  7. matlab找多项式最值,如何利用matlab计算最小多项式

    7.1.1 分段线性插值 所谓分段线性插值就是通过插值点用折线段连接起来逼近原曲线,这也是计算机绘制图形的基本原理.实现分段线性插值不需编制函数程序,MATLAB自身提供了内部函数interp1其主要 ...

  8. matlab riccati 方程,matlab解riccati方程

    Riccati 方程求解 ? ? 前三个问题将介绍解析解与数值解,后一 个属于非... 矩阵的化零空间或基础解系计算,支持符号运算 求解连续 Lyapunov 方程.Sylvester 方程的数值解 ...

  9. 用matlab编程实现h鲁棒控制算法,利用matlab实现H-infinity鲁棒控制

    利用matlab实现H-infinity鲁棒控制 利用Matlab实现H∞控制 Prof. Dr.-Ing.F.Allgwer Institute for Systems Theory and Aut ...

  10. matlab里面求线性方程组,利用matlab求线性方程组.doc

    利用matlab求线性方程组.doc MATLAB语言课成论文利用MATLAB求线性方程组姓名郭亚兰学号12010245331专业通信工程班级2010级通信工程一班指导老师汤全武学院物电学院完成日期2 ...

最新文章

  1. 难道他们说的都是真的?
  2. 再见,Python。你好,Go 语言
  3. Ubuntu Terminal Shortcut
  4. 从零开始,跟我一起做jblog项目(三)从Maven到Gradle
  5. 判断是否为ie8浏览器
  6. java判断字符串中是否包含字母
  7. c语言include math.h,在C语言中,若需调用数学类库函数第数据进行处理,则需包含头文件______. 答案:math.h;#includemath.h;math.h;“math....
  8. 图表展示结果开发(一)
  9. STM32 - 定时器基础应用说明 - 03 - Application: timer clocking using external clock-source on ETR timer input
  10. 计算机基础八进制和十六进制试题,计算机基础知识考试试题
  11. 美国人与欧洲人为什么都吃转基因食品?
  12. Python学习笔记:requests库
  13. 火狐浏览器手机版_hao123导航app下载-hao123浏览器手机版下载
  14. 《机关单位办公自动化应用指南 (基于国产信息技术应用创新终端)》
  15. 小猫钓鱼(纸牌游戏)-c语言
  16. 无纸化考试系统(CS)
  17. 苹果计算机安装应用软件,苹果Mac电脑怎么安装软件和卸载软件?
  18. php下载地址转换工具,PHP实战:php实现把url转换迅雷thunder资源下载地址的方法...
  19. Uconn DataMining Math5671 课程小记(1)
  20. 高并发如何处理,解决方案

热门文章

  1. masm5安装教程_masm5 1、下载个masm5.0(简单 联合开发网 - pudn.com
  2. 计算机辅助设计主要学什么,计算机辅助设计教学大纲
  3. 关于WIN10下NVIDIA安装驱动后没有控制面板的解决办法
  4. 2020最新录制原生淘宝客APP视频搭建教程【最新原创】
  5. 新版犀牛书该不该入手?
  6. 使用Flash air操作本地文件
  7. 黑马程序员最新版JavaWeb综合案例(前后端完整版)
  8. 学生信息管理系统之优化篇
  9. Cadence Allegro 高亮功能的使用技巧图文教程
  10. win10等系统安装Pads安装步骤及软件卡死问题解决