我尝试用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>
答案 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 );
});
函数,并使用funcion
将eval()
的所有出现次数替换为用户输入的值后对其进行评估。
将表单更改为:
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