求解代数方程的思维过程?

时间:2010-12-19 01:57:23

标签: javascript algorithm logic algebra

我正在开发一个图形应用程序,它基本上在HTML5画布上绘制方程式。我没有问题绘制符合 y = 3x ^(2)等等的方程式。这就像插入给定的x值一样简单,用指数代替本机函数和瞧!

然而,理想情况下,我想绘制圆形和其他方程式的方程式,这些方程式不一定以 y = ... 开头。这需要实际上做代数,遗憾的是,代数并不那么容易。我的问题是:解决问题最合乎逻辑的方法是什么,例如 3x + 3y = 15 ?我们假设我得到了一个 x ,而我正在为 y 解决这个问题。你会如何创建一个解决它的函数?

显然,我可以选择效率极低并循环y值,直到找到满足等式的值,但让我们试着避免这种情况。

我不是要求你为我编写脚本,我只是要求最好/最有效的思考过程才能开始。

目前,这个项目是用Javascript编写的。

谢谢!

4 个答案:

答案 0 :(得分:0)

y=3x^(2)与其quadatric不是线性的,3x+3y=15实际上是线性的。

这取决于你想要去的复杂程度,编写一些东西以将3x+3y=15等线性方程重新排列成标准的线性形式(y=5-x)并不具有挑战性,但它变得更加快速虽然它可能有服务器端库,但我不确定JS。

答案 1 :(得分:0)

通常你会在等号的一边用另一个变量表示等式,而在另一边用另一个变量表示。

如果要从随机用户输入重写方程,则需要某种解析引擎。

查看here进行讨论

答案 2 :(得分:0)

您正在寻找的正确名称:http://en.wikipedia.org/wiki/Computer_algebra_system

答案 3 :(得分:0)

一种(近似数值)方法是将你的等式重写为P(x)= 0 [在你的情况下P(x)= 3(x ^ 2)+ 3(y ^ 2) - 15]然后使用诸如Newton-Raphson之类的数值技术来找到P(x)

的根

如果你想象征性地解决,那么需要Computer Algebra System(CAS)(非平凡)。