⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 matrix.html

📁 求解矩阵逆的小程序
💻 HTML
字号:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>matrix</title>
<script>
//创建空表格供输入矩阵
function creatTable(tableID)
{
  document.getElementById("rows").disabled="disabled";
  var rows=document.getElementById("rows").value;//行数

// 创建一个<table>元素和一个<tbody>元素
  mytable = document.getElementById(tableID);
  var oldrows=mytable.rows.length;

//删除原有的表格内容
  for(var k=oldrows-1;k>=0;k--)
   {
     mytable.deleteRow(k);
    }
  mytablebody = document.createElement("tbody");

//创建所有的单元格
  for(var i = 0; i < rows; i++)
   {
    // 创建一个<tr>元素
    mycurrent_row = document.createElement("tr");
    for(var j = 0; j < rows; j++) 
	{
    // 创建一个<td>元素
      mycurrent_cell = document.createElement("td");
	  mycurrent_cell.setAttribute("width",100);
    //创建输入域
	  if(tableID=="resultTable")
	   {
	     mycurrent_cell.innerHTML='<input type="text" id="result'+i+j+'"width="100" />';
	   }
	   else
	   {
	     mycurrent_cell.innerHTML='<input type="text" id="cell'+i+j+'"width="100" />';
	   }
    // 将列<td>添加到行<tr>
    mycurrent_row.appendChild(mycurrent_cell);
     }
    // 将行<tr>添加到<tbody>
    mytablebody.appendChild(mycurrent_row);
  }
// 将<tbody>添加到<table>
mytable.appendChild(mytablebody);
// 将表格mytable的border属性设置为2
mytable.setAttribute("border", "1");
}


//该函数新建结果表格,并计算逆矩阵
function reverseMatrix()
{
//新建结果表格
creatTable("resultTable");

var rows=document.getElementById("rows").value;//行数
//读取矩阵
var matrix=new Array(rows);//矩阵的行元素
for(var i=0;i<rows;i++)
 {
   matrix[i]=new Array(rows*2);//矩阵的列元素,后一半存放矩阵的逆
   for(var j=0;j<rows;j++)
   {
      var cell_id="cell"+i+j;
      matrix[i][j]=document.getElementById(cell_id).value;
   }
 }
//add the identity array at the end
for(var i=0;i<rows;i++)
  {
    for(var j=rows;j<rows*2;j++)
	  {
	    if((j-i)==rows){matrix[i][j]=1;}
		 else{matrix[i][j]=0;}
	  }
  }

//求逆过程
for(var k=0;k<rows;k++)
  {
    if(matrix[k][k]!=1)
	{
	  var bs=matrix[k][k];
	  matrix[k][k]=1;
	  for(var m=k+1;m<rows*2;m++)
	   {
	     matrix[k][m]=matrix[k][m]/bs;
	   }
	 }
	 for(var q=0;q<rows;q++)
	 {
	   if(q!=k)
	    {
		  var bs=matrix[q][k];
		  for(var p=0;p<rows*2;p++)
		   {
		     matrix[q][p]=matrix[q][p]-bs*matrix[k][p];
		   }
		}
		else
		 {continue;}
	 }
  }

//写入结果表格
 for(var x=0;x<rows;x++)
  {
   var k=0;
   for(var y=rows;y<rows*2;y++)
    {
     var result_id="result"+x+k;
	 k++;
	 document.getElementById(result_id).value=matrix[x][y];
    }
  }
}



</script>
</head>

<body>
<table height=600 align="center">
<tr height="30">
<td colspan="2"><font size="2" color="#66CCFF">建议使用IE内核浏览器</font></td>
</tr>
<tr height="12"><td colspan="2"></td></tr>
<tr><td width="40"></td>
<td>
<font color="#0000CC" face="华文楷体">
<form id="myform" name="myform">
1.请输入方阵的阶:<input type="text" name="rows" id="rows" />
<input type="button" name="ok" id="ok" value="确定" onclick="javascript:creatTable('originalTable')" /></br></br>
2.请输入原矩阵:</br>
<table id="originalTable">
</table></br>
3.<input type="button" name="ok" id="ok" value="求逆" onclick="javascript:reverseMatrix()" /></br></br>
结果如下:</br>
<table id="resultTable">
</table></br>
<input type="button" name="reset" id="reset" onclick="javascript:document.location.reload();
" value="重置"/></br>
</form>
</font>
</td>
</tr>
<tr><td valign="bottom" colspan="2">copyright@A1021  TEL:(86)10-82316477-802</td>
</tr>
</table>

</body>
</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -