App inventor 2 en español
Cómo programar los teléfonos móviles con Android.
Curso de App inventor 2 en español - Juan Antonio Villalpando
-- Tutorial de iniciación de App Inventor 2 en español --
Volver al índice del tutorial
___________________________
166B.- Regresión cúbica con JavaScript.
p166B_javascript_regresion.aia
- En el tutorial 84F2_regresion_exponencial.htm vimos dos tipos de regresiones: ab-exponencial y e-exponencial.
- Ahora vamos a ver otro tipo de regresión: regresión cúbica o regresión polinomial de tercer orden.
- Aquí podemos estudiar este tipo de regresión:
https://towardsdatascience.com/polynomial-regression-bbe8b9d97491
- Con los valores x,y que introduzcamos debemos obtener los parámetros A, B, C y D para crea la expresión:
- El código JavaScript para obtener A, B, C y D, lo obtenemos de: http://jsbin.com/dedos/1/edit?html,js
- Utilizaremos la librería: https://cdnjs.cloudflare.com/ajax/libs/numeric/1.2.6/numeric.min.js
_________________
- Diseño.
- Necesitamos subir a la aplicación estos dos archivos:
regresion_cubica.htm
numeric.min.js
- En vez de subir a la aplicación el archivo numeric.min.js podríamos modificar esta línea:
<script src="https://cdnjs.cloudflare.com/ajax/libs/numeric/1.2.6/numeric.min.js"></script>
regresion_cubica.htm |
<!DOCTYPE html>
<html><head><meta charset=utf-8 />
<script src="numeric.min.js"></script>
</head><body>
<script>
var datos = window.AppInventor.getWebViewString() ; // Obtiene los datos.
datos = datos + ":" ;
var partes = datos.split(":");
var data_x = eval('[' + partes[0] + ']');
var data_y = eval('[' + partes[1] + ']');
// var data_x = [1,2,3,4,5,6,7,8,9];
// var data_y = [155,229,322,453,655,888,1128,1694,2036];
var cubic = function(params,x) {
return params[0] * x*x*x +
params[1] * x*x +
params[2] * x +
params[3];
};
var objective = function(params) {
var total = 0.0;
for(var i=0; i < data_x.length; ++i) {
var resultThisDatum = cubic(params, data_x[i]);
var delta = resultThisDatum - data_y[i];
total += (delta*delta);
}
return total;
};
var initial = [1,1,1,1];
var minimiser = numeric.uncmin(objective,initial);
var todo = "";
for(var j=0; j<minimiser.solution.length; ++j) {
todo = todo + minimiser.solution[j].toFixed(4) + ",";
}
window.AppInventor.setWebViewString("" + todo); // Respuesta a CadenaDeWebView
</script>
</body></html>
|
|
|
_________________
- Bloques.
- Observa: file:///mnt/sdcard/AppInventor/assets/regresion_cubica.htm.
- Cuando lo vayamos a Generar para obtener el archivo de instalación .apk, previamente cambiamos la dirección del archivo a file:///android_asset/regresion_cubica.htm
_________________
- Comentarios.
-
__________________________________
|