在JavaScript中派生

Derivate in JavaScript

本文关键字:派生 JavaScript      更新时间:2023-09-26

我有这段代码。

<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>
<form name="formulario" onsubmit="return procesar(this);">         
        Ingrese la funcion:
        <input name="func" type="text" size="15" />           
        <input type="submit" value="Procesar" />   
    </form>

JavaScript代码:

//Calculo de derivada
var func = document.getElementsByName("func")[0].value;
var result = nerdamer('diff(2x^3+3x^2)').evaluate();
document.getElementById('text').innerHTML += '<p>'+result.text()+'</p>';

当我手动引入函数时,在输入时,当我点击"Procesar"时,我需要计算导数。谢谢你,我不知道怎么。。。需要帮助。我的意思是,保存传递给函数的值并显示结果。

我不知道那个库,但似乎可以用区分表达式expr

nerdamer.getCore().Calculus.diff(nerdamer(expr).symbol).text()

它有点长,但在expr格式错误的情况下比nerdamer("diff(" + expr + ")")更安全。

然后,你可以使用

document.forms.formulario.addEventListener('submit', function(e) {
  e.preventDefault(); // Don't send form
  var expr = this.elements.func.value,
      diff = nerdamer.getCore().Calculus.diff(nerdamer(expr).symbol).text();
  document.getElementById('text').textContent = diff;
});
<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>
<form name="formulario">         
  Enter function:
  <input name="func" type="text" size="15" />           
  <input type="submit" value="Differentiate" />   
</form>
<div id="text"></div>

您必须创建procesar函数:

function procesar(_this){
    //Calculo de derivada
    var func = document.getElementsByName("func")[0].value;
    var result = nerdamer('diff(2x^3+3x^2)').evaluate();
    document.getElementById('text').innerHTML += '<p>'+result.text()+'</p>';
    return false; //Prevent the refresh
}

希望这能有所帮助。

这显示了衍生物:

function Differentiate(sender) {
  var func = document.getElementsByName("func")[0].value.trim();
  var result = nerdamer('diff(' + func + ')').evaluate();
  var html = document.getElementById('text').innerHTML;
  html = '<p>' + result.text() + '</p>' + html;
  document.getElementById('text').innerHTML = html;
}
<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>
<form name="formulario" method="get" onsubmit="return Differentiate(this);">
  Ingrese la funcion:
  <input name="func" type="text" size="15" />
  <input type="submit" value="Differentiate" />
</form>
<div id="text"></div>

不幸的是,我无法对已接受的答案发表评论,但我想对其进行轻微修改,以获得相同的结果。还要记住,如果函数包含多个变量,则需要指定要区分的变量。

document.forms.formulario.addEventListener('submit', function(e) {
  e.preventDefault(); // Don't send form
  var value = this.elements.func.value,
      deriv = nerdamer('diff('+value+')').text();
  document.getElementById('text').textContent = deriv;
});
<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>
<form name="formulario">         
  Ingrese la funcion:
  <input name="func" type="text" size="15" />           
  <input type="submit" value="Procesar" />   
</form>
<div id="text"></div>