數值分析(php兌現)一:Lagrange插值

來源:互聯網
上載者:User
數值分析(php實現)一:Lagrange插值
在學數值分析,試著用php實現下,有興趣的朋友可以粘下來試試
Lagrange插值就是給出n個已知的點,用多項式函數擬合,求出擬合的函數,進而估算未知點函數值的一種插值過程
插值函數是f(x) = xigma(求和) lk*yk
本類實現了插值後顯示函數映像的功能
dot = $array;    }    /*     * 計算lk     * */private function get_lk($x,$k){        $num = count($this->dot['x']);$omiga_xk = 1;$omiga_x = 1;for($i = 0;$i < $num;$i++){if($i != $k){$omiga_xk *= ($this->dot['x'][$k]-$this->dot['x'][$i]);$omiga_x *= ($x - $this->dot['x'][$i]);}}$lk = $omiga_x/$omiga_xk;return $lk;}public function get_y($x){        $num = count($this->dot['x']);$L = 0;for($k = 0;$k < $num;$k++){$lk = $this->get_lk($x,$k);            $L += ($this->dot['y'][$k]*$lk);}return $L;    }    public function draw(){        $img = imagecreate(500,500);        imagecolorallocate($img,255,255,2);        $num = count($this->dot['x']);        $max = 0;        for($i = 0;$i < $num;$i++) $max = $max < $this->dot['x'][$i] ? $this->dot['x'][$i]:$max;        $r = 7;//點的半徑        $step = 0.1;//步長        for($i = 0;$i < $num;$i++){            imagefilledellipse($img,$this->dot['x'][$i],$this->dot['y'][$i],$r,$r,1);        }        for($i = $this->dot['x'][0]-10;$i < $max + 10;$i += $step){            $current_x = $i;            $current_y = $this->get_y($current_x);            $next_x = $i + $step;            $next_y = $this->get_y($next_x);            imageline($img,$current_x,$current_y,$next_x,$next_y,1);        }        header("Content-type: image/png");        imagepng($img);        imagedestroy($img);    }}$x = new Lagrange(array('x'=>array(10,30,100,120,220),'y'=>array(20,40,240,220,340)));$x->draw();?>

1 樓 luozhong915127 2011-11-17

全是代碼,沒有解釋呀

  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.