使用JavaScript解决一系列方程

时间:2018-04-13 20:21:57

标签: javascript physics

为了好玩,我正在尝试设计一个网站,通过利用当前温度和物体撞击地面的时间,帮助准确测量悬崖或高层建筑的高度。在解释问题时,我将把问题分解成不同的部分。

物理:用户记录物体撞击地面的时间既是物体撞击地面所需的时间,也是物体听到声音所需的时间。用户。出于这个原因,我们需要记录外部温度以通过This Formula来校正声速。除此之外,还有一些相对简单的物理学,即重新排列运动方程和逻辑来解决其余问题。

问题:我在python,html和css方面有一些经验但在javascript中几乎没有。根据我的研究,我将不得不使用javascript来完成计算,这是该项目中最具挑战性的部分,也是我最不熟悉的部分。除了数学之外,我已将问题简化为5个主要计算,javascript需要按以下顺序“完成”:

1)使用“物理”部分中的公式

计算“Vsound”温度

2)使用之前找到的'Vsound'解决this equation。这个'A'值是二次公式中的'A'项。

3)使所有输入的时间值为负。

4)解决quadratic equation但只解决该函数的正根。不需要否定。该等式的“A”值将是步骤(2)的求解值。 “B”值始终为1.“C”值将是步骤(3)中的求解值。

5)从步骤(4)中取出解决方案并将其插入this formula以解决悬崖的高度。

简单!

我认为在完成html或css组件时我不会有任何问题,更多的是“脚本”部分,我几乎不知道如何完成。

任何有关如何完成这些部分的帮助都会非常棒,非常感谢!

1 个答案:

答案 0 :(得分:-1)

我做了这个小html女巫利用公式来计算时间:

<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css"></style>
</head>
<body>
<script type="text/javascript">
    var D = document;

    function calcVsound(){
        //get the inputted value
        var temp = D.getElementById('tempInput').value;
        //make it numeric
        var numericTemp = parseFloat(temp);
        //calculate sound velocity
        return getVsound(numericTemp);
    }

    function getVsound(temp){
        //The constant value
        var sp = 331;
        //The division inside the root
        var div = temp/273;
        //The square root
        var Droot = Math.sqrt(1+div);
        //The result
        return sp*Droot;
    }

    function gettingAvalue(){
        //calculating the value of "A" Step "2"
        var Vsound = calcVsound();
        var A = 9.81/(2*Vsound);
        return A;
    }

    function getInputTime(){
        //get Time from the input
        var time = D.getElementById('timeInput').value;
        //make it numeric
        var numericTime = parseFloat(time);
        //see if it is negative
        if(numericTime<0){
            //return if negative
            return numericTime;
        }else{
            //return negative value of time
            return (numericTime*(-1));  
        }
    }

    function solveQuadratic(){
        //The value of -b
        var B = -1;
        //The value of c
        var C = getInputTime();
        //The value of a
        var A = gettingAvalue();
        //Calculating b^2
        var Epow = Math.pow(B,2);
        //Calculating b^2 - 4ac 
        var InsideRoot = Epow - (4*A*C);
        //Calculating squareroot of b^2 - 4ac
        var Eroot = Math.sqrt(InsideRoot);
        //Getting the two roots
        var x_1 = (B+Eroot)/(2*A);
        var x_2 = (B-Eroot)/(2*A);
        //Getting the positive one
        if(x_2>x_1){
            return x_2;
        }else{
            return x_1;
        }
    }

    function getHeight(){
        //Solve the cuadratic formula
        var quad = solveQuadratic();
        var quad_pow = Math.pow(quad,2);
        //use the formula to calculate height
        var solution = (9.28*quad_pow)/2;
        //Show it on screen
        D.getElementById('solution').innerHTML = solution;
    }

</script>
<div>
    <span>Temperature:</span>
    <input type="number" name="Temperature" id="tempInput">
</div>
<div>
    <span>Time:</span>
    <input type="number" name="Time" id="timeInput">
</div>
<div>
    <button onclick="getHeight()">
        CALCULATE
    </button>
</div>
<div>
    <p id="solution">

    </p>
</div>
</body> 
</html>

希望这有帮助