我想用javascript计算导数和积分,但是当我尝试返回使用输入的等式时。什么都没有显示或得到非真实答案。
HTML
Equation<br>
<input type="text" name="equation" id="equation" class="form"><br>
Point<br>
<input type="text" name="point" id="point" class="form"><br>
<p id="submit" onclick="submit()" name="solve">click</p><br>
的JavaScript
function submit() {
var equation = +document.getElementById("equation").value;
var point = +document.getElementById("point").value;
//console.log(point);
var d = .0001;
var a = (point +a)*a;
var startPoint;
function integral(f) {
for(startPoint= 0; startPoint < point; startPoint+=d){
intAnswer +=(f(startPoint+d)+f(startPoint-d))*(d)*(1/2);
}
return intAnswer;
}
function f(x) {
return equation;
}
function diff(f) {
return function(x) {
return ((f(x+a)-f(x-a))/(2*a));
};
}
}
我想输入x*x
来获取X^2
,但这不起作用。谁知道为什么?
答案 0 :(得分:2)
您可以尝试从输入创建函数,如下所示:
var f = new Function('x', 'return ' + equation);
这会评估你的字符串。
答案 1 :(得分:1)
你的“等式”只是一个字符串。 您可以使用eval解析它。
f = function(x) {
//x is your equation
return eval(x);
}
//Note, user input formula must match the function parameter variable name( x ), if user types x*x then it works, if he types y*y then not.