<form name="matrix">
<p><b>Enter your Augmented Matrix to be solved: </b></p>
<table cellspacing="8">
<tr>
<td valign="TOP"><table>
<tr>
<th>x<sub>1</sub></th>
<th>x<sub>2</sub></th>
<th>x<sub>3</sub></th>
<th>Aug.</th>
</tr>
<tr>
<td><br />
</td>
</tr>
<tr>
<td><input type="text" name="a11" size="5"></td>
<td><input type="text" name="a12" size="5"></td>
<td><input type="text" name="a13" size="5"></td>
<td><b>:</b> <input type="text" name="a14" size="5"></td>
</tr>
<tr>
<td><br />
</td>
</tr>
<tr>
<td><input type="text" name="a21" size="5"></td>
<td><input type="text" name="a22" size="5"></td>
<td><input type="text" name="a23" size="5"></td>
<td><b>:</b> <input type="test" name="a24" size="5"></td>
</tr>
<tr>
<td><br />
</td>
</tr>
<tr>
<td><input type="text" name="a31" size="5"></td>
<td><input type="text" name="a32" size="5"></td>
<td><input type="text" name="a33" size="5"></td>
<td><b>:</b> <input type="text" name="a34" size="5"></td>
</tr>
</table>
</td>
<td> </td>
<td valign="BOTTOM" rowspan="2"><table cellspacing="4" cellpadding="4">
<tr>
<td align="LEFT" valign="RIGHT"> <input TYPE="button"
VALUE="Solve" SIZE="10" onClick="solve(matrix)"> </td>
</tr>
<tr>
<td align="CENTER">x1 = <input type="text" name="x1" size="10"></td>
</tr>
<tr>
<td align="CENTER">x2 = <input type="text" name="x2" size="10"></td>
</tr>
<tr>
<td align="CENTER">x3 = <input type="text" name="x3" size="10"></td>
</tr>
</table>
</td>
</tr>
<tr>
<td></td>
<td> </td>
</tr>
</table>
<p><input type="reset" value="Reset"></p>
</form>
function initArray() {
this.length = initArray.arguments.length
for (var i = 0; i < this.length; i++)
this[i+1] = initArray.arguments[i]
}
function solve (m) {
var a1 = new initArray(parseFloat(document.matrix.a11.value, 10), parseFloat(document.matrix.a12.value, 10), parseFloat(document.matrix.a13.value, 10), parseFloat(document.matrix.a14.value, 10))
var a2 = new initArray(parseFloat(document.matrix.a21.value, 10), parseFloat(document.matrix.a22.value, 10), parseFloat(document.matrix.a23.value, 10), parseFloat(document.matrix.a24.value, 10))
var a3 = new initArray(parseFloat(document.matrix.a31.value, 10), parseFloat(document.matrix.a32.value, 10), parseFloat(document.matrix.a33.value, 10), parseFloat(document.matrix.a34.value, 10))
var t1 = a1
var t2 = a2
var t3 = a3
// First we need a one in the first spot
if (a1[1] == 0) { alert("\rThere is a 0 in the first entry of the Matrix you entered\r\rI can't handle that at this time\r\rPlease Re-Enter the Matrix\r ") }
if (a1[1] != 0) {
var temp = a1[1]
for (var i=1; i<=4; i++)
{ a1[i] = a1[i] / temp }
}
// Now we should have a 1 in the first entry - Now to zero out the column
var temp = -a2[1]
for ( var i=1; i<=4; i++ ) {
a2[i] = a2[i] + (a1[i] * temp) }
var temp = -a3[1]
for ( var i=1; i<=4; i++ ) {
a3[i] = a3[i] + (a1[i] * temp) }
// Next Column Check if 0 - if not put a 1 there
if (a2[2] == 0 ) { // if = to 0 switch rows
for (var i=2; i<=4; i++) {
var temp = a2[i]
a2[i] = a3[i]
a3[i] = temp }
}
if (a2[2] != 0 ) {
var temp = a2[2]
a2[2] = a2[2] / temp // for statement would have taken longer
a2[3] = a2[3] / temp
a2[4] = a2[4] / temp
// zero out column below
var temp = -a3[2]
for ( var i=2; i<=4; i++ ) {
a3[i] = a3[i] + (a2[i] * temp) }
// zero out column above
var temp = -a1[2]
for ( var i=2; i<=4; i++ ) {
a1[i] = a1[i] + (a2[i] * temp) }
} // ends if != 0
// Final Column
if (a3[3] != 0 ) {
var temp = a3[3]
a3[3] = a3[3] / temp // for statement would have taken longer
a3[4] = a3[4] / temp
// zero out column above
var temp = -a2[3]
a2[3] = a2[3] + (a3[3] * temp)
a2[4] = a2[4] + (a3[4] * temp)
var temp = -a1[3]
a1[3] = a1[3] + (a3[3] * temp)
a1[4] = a1[4] + (a3[4] * temp)
}
// ALWAYS CHECK YOUR WORK
if (t1[1] * a1[4] + t1[2] * a2[4] + t1[3]*a3[4] != t1[4] )
{ alert("\rThe Solution I found does not check out\r\rYou may have entered a system of equations which\r have no solution, or infinite solutions.") }
if (t2[1] * a1[4] + t2[2] * a2[4] + t2[3]*a3[4] != t2[4] )
{ alert("\rThe Solution I found does not check out\r\rYou may have entered a system of equations which\r have no solution, or infinite solutions.") }
if (t3[1] * a1[4] + t3[2] * a2[4] + t3[3]*a3[4] != t3[4] )
{ alert("\rThe Solution I found does not check out\r\rYou may have entered a system of equations which\r have no solution, or infinite solutions.") }
m.x1.value=a1[4]
m.x2.value=a2[4]
m.x3.value=a3[4]
}
This Pen doesn't use any external CSS resources.
This Pen doesn't use any external JavaScript resources.