• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

数值分析(php兑现)二:线性方程组的两个解法

php 搞代码 4年前 (2022-01-24) 23次浏览 已收录 0个评论

数值分析(php实现)二:线性方程组的两个解法
其实这个程序是早就写好的,只不过一直没有时间写上来.
这两个程序都是通过迭代的方法得到线性方程组的解的方法,一个是高斯-塞德尔迭代法,一个是雅可比迭代法

<?phpclass Gs{    private $matrix;    public function __construct($array){        $this->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 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];                $tempM<strong style="color:transparent">9来源gaodai#ma#com搞@代~码$网</strong>搞gaodaima代码in = $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)"."<br>";            if($min solve();?>

接下来的是雅可比方法,

<?phpclass Yacobi{    private $matrix;    public function __construct($array){        $this->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 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)"."<br>";        }    }}$a = array(    array(5,2,1,-12),    array(-1,4,2,20),    array(12,-3,10,3));$x = new Yacobi($a);$x->solve();?>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:数值分析(php兑现)二:线性方程组的两个解法
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址