javascript - 适应(求解)复杂方程的算法(隐函数 f(x,y) )

标签 javascript math implicit complex-numbers

我正在尝试修改一些方程式(隐式 f(x,y))以便能够列出对应 X 值的 Y。
方程式可以是例如如下:

y^2 = x^3 + 2x - 3xy
(X^2+y^2-1)^3-x^2y^3=0
X^3+y^3=3xy^2-x-1
X^3+y^2=6xy/sqrt(y/x)
cos(PI*Y) = cos(PI.X)


下面你可以看到绘制的方程式:
enter image description here
提示,我不知道,但也许这会有所帮助,以下内容适用:

Y^2 + X^2 =1  ==>  Y= sqrt(1-X^2)

要对方程进行改编(代入),以便用 X(而不是 Y)表示。
对于y^2=x^3+2x-3xy通过代入结果:

y1 = (-(-3x) - sqr((-3x)^2 - 4(-1)(x^3+2x)))/2*(-1)
y2 = (-(-3x) + sqr((-3x)^2 - 4(-1)(x^3+2x)))/2*(-1)


通过调整方程式,我将能够改变 X 并获得相应的 Y。
在这里查看 Arkadiusz Raszeja-Solution 的解决方案对于方程 y^2=x^3+2x-3xy

“Arkadiusz Raszeja”的解是二次方程,但我需要一个算法,例如以上方程都可以求解。

var x,y;
for(var n=0; n<=10; n++) {
    x=n;
    y = (-(-3*x)-Math.sqrt(((-3*x)*(-3*x)) - 4*(-1)*((x*x*x)+2*x)))/(2*(-1));
    alert(y);
}

上面的 alert(y); 将为 Y 显示如下列表:

X= 1 ; Y=0.79
X=2 ; Y=1.58
X=3 ; Y=2.79
X=4 ; Y=4.39
X=5 ; Y=6.33
X=6 ; Y=8.57 
X=7 ; Y=11.12 
X=8 ; Y=13.92
X=9 ; Y=16.98
X=10 ; Y= 20.29


我的问题是如何编写一个算法,该算法将适应(求解)上述示例中的方程式?

(您也可以使用像 math.js 这样的 JS 库,但不能使用 plot 或 graph 库。解决方案应该在 javascript 中)
提前致谢。

最佳答案

希望我能正确理解您的问题。 nerdamer 会有帮助吗?它可以帮助解决高达 3 次多项式的代数问题。可以调用 buildFunction 方法来获取可用于绘图的 JS 函数。我在项目网站上以类似的方式结合 function-plot.js 使用它

var solutions = nerdamer('y^2=x^3+2x-3x*y').solveFor('y');
//You'll get back two solutions since it's quadratic wrt to y
console.log(solutions.toString());
//You can then parse the solutions to native javascript function
var f = nerdamer(solutions[0]).buildFunction();
console.log(f.toString());

/* Evaluate */
var solutions = nerdamer('y^3*x^2=(x^2+y^2-1)').solveFor('y');
console.log(solutions.toString());
//You can then parse the solutions again to native javascript function
var f = nerdamer(solutions[0]);
var points = {};
for(var i=1; i<10; i++)
    points[i] = f.evaluate({x: i}).text();

console.log(points)
<script src="http://nerdamer.com/js/nerdamer.core.js"></script>
<script src="http://nerdamer.com/js/Algebra.js"></script>
<script src="http://nerdamer.com/js/Calculus.js"></script>
<script src="http://nerdamer.com/js/Solve.js"></script>

你总是可以评估。这比纯 JS 函数慢,但它可能是您所需要的。您可能必须使用 try catch block 来除以零。

关于javascript - 适应(求解)复杂方程的算法(隐函数 f(x,y) ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43080688/

相关文章:

scala - 内部特质破坏了隐式参数

javascript - 一系列 promise 如何与 reduce 一起工作?

javascript - 'javascript:' 前缀何时是有效语法?

C++:具有自定义结构的文本字段以支持数学或任何其他形式

Java - 如何使用 BigDecimal pow 显示小数

c++ - OpenGL 近平面剪裁太多

javascript - 奇怪的 JS 代码渲染

javascript - 在高流量的大网站中使用 JQuery UI 主题好吗?

scala - 为什么这个调用隐含模棱两可?

scala - Scala 'for' 枚举器中的隐式?