Numerical Analysis (php implementation) 2: The two solutions to linear equations have been written for a long time, but there is no time to write them. these two procedures are all methods for obtaining the solution of linear equations through iterative methods. one is Gaussian-Sellel iteration, and the other is the KNN iteration. & lt ;? PhpclassGs {Numerical Analysis (php implementation) 2: two solutions to linear equations
In fact, this program has been written for a long time, but there is no time to write it.
These two procedures are all methods for obtaining the solution of linear equations through iterative methods. one is Gaussian-Sellel iteration, and the other is javalone iteration.
matrix = $array; } public function solve(){ $preX = array(); $nowX = array(); $cishu = 17; $delta = 0.0001; $matN = count($this->matrix); for($i = 0;$i<$matN;$i++){ $preX[$i] = 1; } $min = 100000000; for($n = 0;$n<$cishu;$n++){ for($i = 0;$i<$matN;$i++){//xi $sum1 = 0; $sum2 = 0; for($j = 0;$j < $matN;$j++){ if($j < $i) $sum1 += ($this->matrix[$i][$j] * $nowX[$j]); if($j > $i) $sum2 += ($this->matrix[$i][$j] * $preX[$j]); } $nowX[$i] = ($this->matrix[$i][$matN] - $sum1 - $sum2)/$this->matrix[$i][$i]; $tempMin = $nowX[$i] > $preX[$i] ? $nowX[$i]-$preX[$i]:$preX[$i]-$nowX[$i]; if($min > $tempMin) $min = $tempMin; } $preX = $nowX; $str = implode(",",$nowX); echo ($n+1).":($str)"."
"; if($min < $delta) break; } }}$a = array( array(5,2,1,-12), array(-1,4,2,20), array(12,-3,10,3));$x = new Gs($a);$x->solve();?>
Next, we will use the KNN method,
matrix = $array; } public function solve(){ $preX = array(); $nowX = array(); $cishu = 17; $matN = count($this->matrix); for($i = 0;$i<$matN;$i++){ $preX[$i] = 1; } for($n = 0;$n<$cishu;$n++){ for($i = 0;$i<$matN;$i++){//xi $sum = 0; for($j = 0;$j < $matN;$j++){ if($j != $i) $sum += ($this->matrix[$i][$j] * $preX[$j]); } $nowX[$i] = ($this->matrix[$i][$matN] - $sum)/$this->matrix[$i][$i]; } $preX = $nowX; $str = implode(",",$nowX); echo ($n+1).":($str)"."
"; } }}$a = array( array(5,2,1,-12), array(-1,4,2,20), array(12,-3,10,3));$x = new Yacobi($a);$x->solve();?>