EJEMPLO CON GAS: Calculador de factorización de Cholesky


La factorización de Cholesky es una operación matemática sobre matrices que se usa en diferentes ámbitos de la ingeniería.

Si queréis ver como funciona podéis mirar este link: http://comocalcula.blogspot.com.es/2017/06/como-se-calcula-la-factorizacion-de.html

Si queréis aprender más sobre la Factorización de Cholesky podeis mirar esta web: http://factorizacioncholesky.blogspot.com.es/

Aquí os dejo el código del ejemplo:
index.html
<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
 
<script>
    function Response(string)
    {
       document.getElementsByName("ejemplo")[0].innerHTML = string;
    }
 
    function Calculate()
    {
       var a11 = document.getElementsByName("A11")[0].value;
       var a12 = document.getElementsByName("A12")[0].value;
       var a13 = document.getElementsByName("A13")[0].value;
       var a21 = document.getElementsByName("A21")[0].value;
       var a22 = document.getElementsByName("A22")[0].value;
       var a23 = document.getElementsByName("A23")[0].value;
       var a31 = document.getElementsByName("A31")[0].value;
       var a32 = document.getElementsByName("A32")[0].value;
       var a33 = document.getElementsByName("A33")[0].value;
     
       google.script.run.withSuccessHandler(Response).Cholesky(a11,a12,a13,a21,a22,a23,a31,a32,a33);
     
    }

    function InitWeb()
    {
       google.script.run.withSuccessHandler(Response).Init();
    }
</script>
 
  </head>
  <body>
    <script>
        InitWeb();
    </script>

<div name='ejemplo'>
    <p> Loading.... wait</p>
</div>
 
  </body>
</html>

Codigo.gs
function Init()
{
  var string = "";

  string += "<input type=\"number\" style=\"width:100px;height:15px\"name=\"A11\">";
  string += "<input type=\"number\" style=\"width:100px;height:15px\" name=\"A12\">";
  string += "<input type=\"number\" style=\"width:100px;height:15px\" name=\"A13\"><br>";

  string += "<input type=\"number\" style=\"width:100px;height:15px\" name=\"A21\">";
  string += "<input type=\"number\" style=\"width:100px;height:15px\" name=\"A22\">";
  string += "<input type=\"number\" style=\"width:100px;height:15px\" name=\"A23\"><br>";

  string += "<input type=\"number\" style=\"width:100px;height:15px\" name=\"A31\">";
  string += "<input type=\"number\" style=\"width:100px;height:15px\" name=\"A32\">";
  string += "<input type=\"number\" style=\"width:100px;height:15px\" name=\"A33\"><br>";


  string += "<button onclick=\"Calculate()\">Click me</button>";
  return string;
}

function Cholesky( a11,a12,a13, a21,a22,a23, a31,a32,a33 )
{
  var string = "";

  a11 = Math.sqrt(a11);
  a21 = a21 / a11;
  a31 = a31 / a11;

  a22 = Math.sqrt(a22 - (a21*a21));

  a32 = (a32 -a31*a21)/a22;

  a33 = Math.sqrt(a33 - (a31*a31) - (a32*a32));

  a12 = 0;
  a13 = 0;
  a23 = 0;

  string += "<table>";
  string += "<tr>";
  string += "<td><a>" + a11+ "</a></td>";
  string += "<td><a>" + a12+ "</a></td>";
  string += "<td><a>" + a13+ "</a></td>";
  string += "</tr>";

  string += "<tr>";
  string += "<td><a>" + a21+ "</a></td>";
  string += "<td><a>" + a22+ "</a></td>";
  string += "<td><a>" + a23+ "</a></td>";
  string += "</tr>";

  string += "<tr>";
  string += "<td><a>" + a31+ "</a></td>";
  string += "<td><a>" + a32+ "</a></td>";
  string += "<td><a>" + a33+ "</a></td>";
  string += "</tr>";

  string += "</table>";
  string += Init();
  return string;
}

//Retorna la página principal
function doGet()
{
  return HtmlService.createHtmlOutputFromFile('index');
}

No hay comentarios:

Publicar un comentario

Tal vez te interese