1 <?php 2
3 //三阶行列式计算 函数名嘛,看懂就好
4 function sanjie($array){ 5 $k=$array[0]*$array[4]*$array[8]*+$array[1]*$array[5]*$array[6]*+$array[2]*$array[3]*$array[7]-($array[2]*$array[4]*$array[6]*+$array[1]*$array[3]*$array[8]*+$array[0]*$array[5]*$array[7]); 6 echo $k; 7 echo "<br />"; 8 } 9
10 //二阶行列式计算
11 function erjie($array){ 12
13 $k=$array[0]*$array[3]-$array[1]*$array[2]; 14 echo $k; 15 echo "<br />"; 16 } 17
18
19 //矩阵运算 加法
20 function juzhen_plus($array1,$b,$array2){ //b是列数
21
22 $n=count($array1); 23 $c=array(); 24 for ($i=0;$i<$n;$i++){ 25
26 $c[$i]=$array1[$i]+$array2[$i]; 27
28 } 29 echo "|"; 30 for ($i=0;$i<$n;$i++){ 31 $j=$i+1; 32 echo $c[$i]; 33 echo " "; 34 if($j%$b==0){ 35 echo "|"; 36 echo "<br />"; 37 if ($i!=($n-1)) 38 echo "|"; 39 } 40
41 } 42 echo "<br />"; 43 } 44
45
46 //矩阵运算 减法
47 function juzhen_sub($array1,$b,$array2){ 48
49 $n=count($array1); 50 $c=array(); 51 for ($m=0;$m<$n;$m++){ 52
53 $array2[$m]=0-$array2[$m]; 54
55 } 56 for ($i=0;$i<$n;$i++){ 57
58 $c[$i]=$array1[$i]+$array2[$i]; 59
60 } 61 echo "|"; 62 for ($i=0;$i<$n;$i++){ 63 $j=$i+1; 64 echo $c[$i]; 65 echo " "; 66 if($j%$b==0){ 67 echo "|"; 68 echo "<br />"; 69 if ($i!=($n-1)) 70 echo "|"; 71 } 72
73 } 74 echo "<br />"; 75 } 76
77
78 //矩阵运算 矩阵X矩阵
79 function juzhen_mult_ju($array1,$a,$b,$array2,$d,$e){ 80 $c=array(); 81 if ($b==$d){ 82
83 for ($i=0;$i<$a;$i++){ 84 for ($j=0;$j<$e;$j++){ 85 for ($s=0;$s<=$b;$s++){ 86 $c[$i][$j]=$c[$i][$j]+$array1[$i][$s]*$array2[$s][$j]; 87 } 88 } 89 } 90
91 echo "|"; 92 for ($h=0;$h<$a;$h++){ 93 for ($f=0;$f<$e;$f++){ 94 echo $c[$h][$f]; 95 echo " "; 96 if($f==($e-1)){ 97 echo "|"; 98 echo "<br />"; 99 if ($h!=($a-1)) 100 echo "|"; 101 } 102
103 } 104 } 105
106 } 107 else{ 108 echo "这两个矩阵无法相乘!"; 109 } 110 echo "<br />"; 111 } 112
113
114
115 //矩阵运算 常数X矩阵
116 function juzhen_mult_shu($array1,$b,$d){ 117
118 $n=count($array1); 119 $c=array(); 120 for ($i=0;$i<$n;$i++){ 121
122 $c[$i]=$array1[$i]*$d; 123
124 } 125 echo "|"; 126 for ($i=0;$i<$n;$i++){ 127 $j=$i+1; 128 echo $c[$i]; 129 echo " "; 130 if($j%$b==0){ 131 echo "|"; 132 echo "<br />"; 133 if ($i!=($n-1)) 134 echo "|"; 135 } 136
137 } 138
139 echo "<br />"; 140 } 141
142
143
144 $array1=array(5,15,6,7);//用作二阶行列式
145 $array2=array(5,15,6,7,2,1,5,6,7);//用作三阶行列式
146 $array3=array(100,15,6,35,35,5);//用作3行2列
147 $array4=array(5,5,6,7,50,5);//2行3列或作3行2列来用
148
149 $array5=array
150 ( 151 array(10,1),
152 array(6,3),
153 array(5,7) 154 ); 155 //$array6=array(5,5,6,7,5,5,8,6);
156 $array6=array
157 ( 158 array(5,5,6,7),
159 array(8,9,2,6) 160 ); 161
162 sanjie($array2); 163 erjie($array1); 164 juzhen_plus($array3,2,$array4);//加
165 juzhen_sub($array3,2,$array4);//减
166 juzhen_mult_ju($array5,3,2,$array6,2,4);//乘
167 juzhen_mult_shu($array3,3,3);//乘
运算结果如下:
除法的话,放在下一篇。
上述代码纯属菜鸟练手之作。
在得知更好的方法之前不妨先用最笨的方法试试,加深印象。
哈哈,欢迎吐槽。