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);//乘
运算结果如下:
除法的话,放在下一篇。
上述代码纯属菜鸟练手之作。
在得知更好的方法之前不妨先用最笨的方法试试,加深印象。
哈哈,欢迎吐槽。