?? matrix.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>
//創(chuàng)建空表格供輸入矩陣
function creatTable(tableID)
{
document.getElementById("rows").disabled="disabled";
var rows=document.getElementById("rows").value;//行數(shù)
// 創(chuàng)建一個<table>元素和一個<tbody>元素
mytable = document.getElementById(tableID);
var oldrows=mytable.rows.length;
//刪除原有的表格內(nèi)容
for(var k=oldrows-1;k>=0;k--)
{
mytable.deleteRow(k);
}
mytablebody = document.createElement("tbody");
//創(chuàng)建所有的單元格
for(var i = 0; i < rows; i++)
{
// 創(chuàng)建一個<tr>元素
mycurrent_row = document.createElement("tr");
for(var j = 0; j < rows; j++)
{
// 創(chuàng)建一個<td>元素
mycurrent_cell = document.createElement("td");
mycurrent_cell.setAttribute("width",100);
//創(chuàng)建輸入域
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屬性設(shè)置為2
mytable.setAttribute("border", "1");
}
//該函數(shù)新建結(jié)果表格,并計算逆矩陣
function reverseMatrix()
{
//新建結(jié)果表格
creatTable("resultTable");
var rows=document.getElementById("rows").value;//行數(shù)
//讀取矩陣
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;}
}
}
//寫入結(jié)果表格
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內(nèi)核瀏覽器</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>
結(jié)果如下:</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 + -