ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2019-10-11 20:37:08  阅读:496  来源: 互联网

标签:complex-numbers javascript math implicit


我试图调整一些方程式(隐式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-(4(-1)(x ^ 3 2x)))/ 2 *(-1)
y2 =(-(-3x)sqr((-3x)^ 2-4-(-1)(x ^ 3 2x)))/ 2 *(-1)

通过自适应方程,我将能够改变X并获得相应的Y.
看到这里的方程式y ^ 2 = x ^ 3 2x-3xy的Arkadiusz Raszeja-Solution解“ 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);
}

以上警报(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库,但不能使用绘图或图形库.解决方案应该在javascript中)

提前致谢.

解决方法:

希望我能正确理解您的问题. nerdamer会帮助您吗?它可以帮助代数求解高达三次多项式.可以调用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块将其除以零.

标签:complex-numbers,javascript,math,implicit
来源: https://codeday.me/bug/20191011/1895397.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有