Newton Raphson方法JavaScript

时间:2015-12-25 18:06:27

标签: javascript html

我尝试用JS做一个Newton Raphson方法。 我做了那个代码,但是,在这个代码中,它定义了polinomy,我需要手动传递。 我不知道如何手动进行polinomy。请不要...... :(

<script language="javascript">
        function funcion(x)
        {
            return  Math.cos(x) - x * x * x;
        }
        function derivada(x)
        {
            return -Math.sin(x) - 3.0 * x * x * x;
        }
        function procesar(formulario)
        {
            var i = 0;
            var err, x_1, x = parseFloat(formulario.x.value);
            var resultado = '<table border="1"><thead><tr><td align="center">i</td><td align="center">x<sub></sub></td><td align="center">error</td></tr></thead><tbody>';
            do
            {
                x_1 = x;
                x = x - funcion(x) / derivada(x);
                err = Math.abs((x - x_1) / x);
                resultado += '<tr><td>x<sub>' + i + '</sub></td><td>' + x_1 + '</td><td>' + err + '</td></tr>';
                i++;
            } while (x != x_1 && i < 100);
            document.getElementById('resultado').innerHTML = resultado + '</tbody></table><br>' + (i == 100 ? 'La solucion no es convergente. ' : 'La solucion es ' + x);
            return false;
        }

那是我的HTML:

<body>
  <h1 align="center">Metodo de Newton-Raphson</h1>


  <form name="formulario" onsubmit="return procesar(this);">
    Ingrese la función
    <input name="x" type="text" size="4" />
    <input type="submit" value="Procesar" />
  </form>


  </br>
  </br>
  </br>
  <table align="center" bgcolor="white">
    <tr>
      <th>

        <br/>
        <div id="resultado"></div>

      </th>
    </tr>
  </table>
</body>

1 个答案:

答案 0 :(得分:3)

您需要添加新输入并将该函数作为字符串接收。然后将该函数传递给var texture = new THREE.Texture(); var loader = new THREE.ImageLoader( manager ); loader.load( './models/Leather-Black.jpg', function ( image ) { texture.image = image; } ); loader.load( './models/Sofa000.obj', function ( object ) { object.traverse( function( node ) { if ( node instanceof THREE.Mesh ) { node.castShadow = true; node.material.map = texture; } }); object.scale.set(30,20,30); object.rotation.y = Math.PI/180 * 180; scene.add( object ); }); 函数,并使用funcioneval()的所有出现次数替换为用户输入的值后对其进行评估。

将表单更改为:

x

然后将<form name="formulario" onsubmit="return procesar(this);"> Ingrese el valor <input name="x" type="text" size="4" /> Ingrese la función <input name="func" type="text" size="15" /> <input type="submit" value="Procesar" /> </form> 功能更改为:

funcion

还添加:

function funcion(func,x) { var newFunc = func.replace(/x/g,x); return eval(newFunc); }

处理新输入,并在计算结果时将其作为var func = document.getElementsByName("func")[0].value;传递

最后一步是计算用户输入的函数的导数。我建议使用像this one这样的库来完成这项工作。

在此处查看实时示例(减去派生词):http://codepen.io/anon/pen/pgEdGW