Ищу производный скрипт - PullRequest
5 голосов
/ 19 июня 2011

Я отчаянно ищу JavaScript, который может вычислить первую производную функции.Функция всегда включает только одну переменную, x.

e.g. f(x) = x²
  f'(3) = 2x

Следовательно, скрипт должен выдать результат 6, так как 2*3 = 6.

Надеюсь, вы знаетео чем я.

Ответы [ 5 ]

8 голосов
/ 19 июня 2011
function slope (f, x, dx) {
    dx = dx || .0000001;
    return (f(x+dx) - f(x)) / dx;
}

var f = function (x) { return Math.pow(x, 2); }

slope(f, 3)
3 голосов
/ 30 сентября 2015

Попробуйте nerdamer .

С его помощью можно создавать производные и создавать функции JavaScript.

//Derivative of x^2
var result = nerdamer('diff(x^2,x)').evaluate();
document.getElementById('text').innerHTML = "<p>f'(x)="+result.text()+'</p>';
//Build a new function
var f = result.buildFunction();
//Evalute f'(3)
document.getElementById('text').innerHTML += "<p>f'(3)="+f(3).toString()+'</p>';
<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>
<div id="text"></div>
3 голосов
/ 19 июня 2011

Вот библиотека Java, чтобы помочь сделать такую ​​вещь:

http://jscl -meditor.sourceforge.net /

И еще:

http://www.mathtools.net/Java/Mathematics/index.html

Вы всегда можете использовать Rhino и импортировать классы Java для использования в вашем JavaScript.

Вот один для JavaScript:

http://code.google.com/p/smath/wiki/smathJavaScriptAPI

1 голос
/ 19 июня 2011

Я не думаю, что есть в javascript.

Вот несколько простых решений, вам нужно соответствующим образом изменить код:

var func = function(x) {return Math.pow(x, 2)}
function der(x, func, prec, isLeft){
    if(prec == undefined) prec = 0.000000001;
    var y = func(x);
    if(isLeft){
        var x1 = x - prec;
    } else {
        x1 = x + prec;
    }
    var y1 = func(x1);
    return (y1-y)/(x1-x);
}
0 голосов
/ 14 ноября 2014

Вы можете делать подобные вещи, используя diff.js . Вы могли бы сделать:

x = range(-10, 10, 0.01); // works only in latest browsers
f = diffXY(x, x.map(F));

, который даст вам значения производной f вашей функции F при x = от -10 до 10 с шагом 0,01.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...