一元二次方程求解(2)
前几天看过了一元二次方程的求解方法,基本掌握了。但这是一个中学的数学知识,我就算宣布自己“掌握了”,也并不是什么值得炫耀与骄傲的事情。所以我就一直想再基于这个问题扩展一下。 因为我用的计算器能够支持这种方程的求解,使用sagemath之类的数学软件也可以完成这类方程的求解。所以我就想也自己实现一个求解的计算器。当然并非直接在给定方程的前提下得出解,而是连每一步的推导过程也都给出来。 如果只是根据一元二次方程求根公式得到它的解,显然是比较容易的。但如果想连带将中间的计算过程和推导过程也都列出来,今天试了一下发现还是比较麻烦、甚至可以说是难以实现的: 1、排版问题 可以通过MathML进行网页排版,但是这个标记型语言我还不会用,所以要先学习、了解这个语言才行; 2、求解推导过程中的化简 这现在看来是比较麻烦的,因为要通过程序判断出什么样的分数可以化简、化简到什么程度就不能继续化简了; 3、符号(+/-)和小数值(0,1,-1)的展现形式 正负号在什么情况下应该显示出来、在什么情况下应该隐藏掉;同样的,对于系数是0、1和-1时,都是有简化表示的,这些简化表示要通过程序的条件判断进行最终的输出精简、令输出的数学公式看上去简单、美观,也是比较麻烦的事情; 4、对虚数的支持 这一点显然就更复杂了,如果考虑到了虚数,是否应该考虑系数本身就是运算式的形式?所以这个看似简单的小工具,其实想实现出来、正确全面的实现出来,还是十分具有挑战性的。至少,今天我第一次尝试,失败了。 这个工具其实没有实际意义,但我觉得既然自己想做一个有趣的数学、计算机、电子方面的个人小网站,那么就应该实现一些有价值的功能和工具。但在还没有过硬的理论知识之前,至少可以将自己已经掌握的知识先工具化。 所以这次的“解一元二次方程工具”,虽然现在还没有实现出来,但我仍然会再多花一些时间研究,争取尽快实现出来。
一元二次方程求解
已知方程,,求在时的根。这是一元二次方程,英文为“quadratic equation”,求解这个方程似乎是初中的数学知识,惭愧已经忘光了。下面重新总结一下求解的方法: 一、直接观察法: 这个方程可以直接通过观察做出因式分解,首先变号,方便进一步观察,之后直接进行因式分解得到形如的形式,之后完成求解、得到2个实根: ,从而得出两个根: 和 但是如果一元二次方程更复杂一些、或者不容易直接观察出可组合的因式,就需要使用更通用的方法了,常用的方法有:直接求根公式法、配方法、和韦达定理。 其中的直接求根公式本质上就是配方法的最终应用,所以如果记不住最终的求根公式,也可以用配方法重新推导一遍,从而得出最终的求根公式来。 二、借助SageMath法: 昨天试用计算器FX-991CNX也得出了上面方程的解,今天又试了一下使用SageMath进行求解,感觉都非常方便。使用SageMath求解截屏如下: 这里值得注意的是,如果方程式中使用的是字母“x”,就不需要第一句变量声明语句了,应该是sagemath会默认字母x、y、z等都是自变量。而我使用的是字母“t”,所以要额外的增加第一行,也就是声明一下字母t为未知自变量,如此就可以进行正确的语法解析,并完成求解。