利用MATLAB进行二次曲线方程的正交变换化简
我们知道平面上二次曲线的一般方程是:
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) a11x2+2a12xy+a22y2+2a1x+2a2y+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θ)=a12a11−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=∣∣∣∣a11a12a12a22∣∣∣∣,(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=∣∣∣∣∣∣a11a12a1a12a22a2a1a2a0∣∣∣∣∣∣,(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=∣∣∣∣a11a1a1a0∣∣∣∣+∣∣∣∣a22a2a2a0∣∣∣∣,(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λ1x∗2+λ2y∗2+I1I3=0其中λ1,λ2是多项式其中\lambda_{1},\lambda_{2}是多项式其中λ1,λ2是多项式λ2−I1λ+I2的两个实根\lambda^2-I_{1}\lambda+I_{2}的两个实根λ2−I1λ+I2的两个实根 |
双曲型 I2<0I_{2}<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^{*}=0I1y∗2±2I1−I3x∗=0 |
同上 |
(7) 一对平行直线; (8) 一对虚平行直线; (9) 一对重合直线 |
I3=0,K1<0I_{3}=0,K_{1}<0I3=0,K1<0I3=0,K1>0I_{3}=0,K_{1}>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}}=0I1y∗2+I1K1=0 |
【表1】 二次曲线的不变量与曲线的类型和形状的关系
2.代码实现
MATLAB 中可以提取方程左端展开后的多项式的系数,在由系数计算不变量和半不变量,对比【表1】得到二次曲线方程的化简后方程,代码如下:
在运行时输入二次曲线方程 f(x,y) = 0 的左端,运行结果示例如下图所示:
代码文件可以在下面链接中下载:
https://download.csdn.net/download/m0_43484109/10861992
利用MATLAB进行二次曲线方程的正交变换化简相关推荐
- “后序遍历二叉运算树进行Lambda演算的化简”带来的联系
今天闲来无事,想到一个自以为绝妙的想法,那就是用后序遍历二叉树Lambda演算的化简. 数据结构与算法中,我们想写个计算器就必须遇到一个问题,表达式求值!其实表达式很多就是我们所谓的现实生活中的问题解 ...
- matlab 标准二次型,matlab用正交变换化二次型为标准形
1.金锄头文库是"C2C"交易模式,即卖家上传的文档直接由买家下载,本站只是中间服务平台,本站所有文档下载所得的收益全部归上传人(卖家)所有,作为网络服务商,若您的权利被侵害请及时 ...
- 如何利用matlab求解方程
如何利用matlab求解方程 1. 前言 作为三大数学软件之一,matlab在数值计算方法的能力首屈一指.求解方程是工科学习和工程计算中最基础.最常见的问题.掌握利用现代化工具求解方程的方法对于 ...
- matlab模拟线圈电磁场,利用MATLAB的PDE工具箱对电场和磁场进行模拟
中学物理Vol. 32 No.巧 疑的态度,认为弊大于利,笔者认为这些想法不无道理,只是大家的关注点应该在于如何更好发挥它的优势,而避免它的不足.在实践的过程中笔者有以下心得和体会,与大家分享: 3, ...
- matlab ploty,matlab绘制函数 如何利用matlab的ploty
最近有网友提出"matlab绘制函数 如何利用matlab的ploty"等问题,小小知识站提取了各大知名网站有关"matlab绘制函数 如何利用matlab的ploty& ...
- matlab行星运动轨迹仿真动画,利用Matlab可视化功能实现微分方程求解行星运动轨迹...
利用Matlab可视化功能实现微分方程求解行星运动轨迹 1.背景 在物理学璀璨的发展史上,物理学家花了很长时间研究我们头顶浩瀚的星空,试图探究星星的运行模式,以及地球自身的运动模式.其中不乏像亚里士多 ...
- matlab找多项式最值,如何利用matlab计算最小多项式
7.1.1 分段线性插值 所谓分段线性插值就是通过插值点用折线段连接起来逼近原曲线,这也是计算机绘制图形的基本原理.实现分段线性插值不需编制函数程序,MATLAB自身提供了内部函数interp1其主要 ...
- matlab riccati 方程,matlab解riccati方程
Riccati 方程求解 ? ? 前三个问题将介绍解析解与数值解,后一 个属于非... 矩阵的化零空间或基础解系计算,支持符号运算 求解连续 Lyapunov 方程.Sylvester 方程的数值解 ...
- 用matlab编程实现h鲁棒控制算法,利用matlab实现H-infinity鲁棒控制
利用matlab实现H-infinity鲁棒控制 利用Matlab实现H∞控制 Prof. Dr.-Ing.F.Allgwer Institute for Systems Theory and Aut ...
- matlab里面求线性方程组,利用matlab求线性方程组.doc
利用matlab求线性方程组.doc MATLAB语言课成论文利用MATLAB求线性方程组姓名郭亚兰学号12010245331专业通信工程班级2010级通信工程一班指导老师汤全武学院物电学院完成日期2 ...
最新文章
- 难道他们说的都是真的?
- 再见,Python。你好,Go 语言
- Ubuntu Terminal Shortcut
- 从零开始,跟我一起做jblog项目(三)从Maven到Gradle
- 判断是否为ie8浏览器
- java判断字符串中是否包含字母
- c语言include math.h,在C语言中,若需调用数学类库函数第数据进行处理,则需包含头文件______. 答案:math.h;#includemath.h;math.h;“math....
- 图表展示结果开发(一)
- STM32 - 定时器基础应用说明 - 03 - Application: timer clocking using external clock-source on ETR timer input
- 计算机基础八进制和十六进制试题,计算机基础知识考试试题
- 美国人与欧洲人为什么都吃转基因食品?
- Python学习笔记:requests库
- 火狐浏览器手机版_hao123导航app下载-hao123浏览器手机版下载
- 《机关单位办公自动化应用指南 (基于国产信息技术应用创新终端)》
- 小猫钓鱼(纸牌游戏)-c语言
- 无纸化考试系统(CS)
- 苹果计算机安装应用软件,苹果Mac电脑怎么安装软件和卸载软件?
- php下载地址转换工具,PHP实战:php实现把url转换迅雷thunder资源下载地址的方法...
- Uconn DataMining Math5671 课程小记(1)
- 高并发如何处理,解决方案