백엔드 개발 PHP 튜토리얼 数值分析(php兑现)一:Lagrange插值

数值分析(php兑现)一:Lagrange插值

Jun 13, 2016 am 11:01 AM
current dot gt this

数值分析(php实现)一:Lagrange插值
在学数值分析,试着用php实现下,有兴趣的朋友可以粘下来试试
Lagrange插值就是给出n个已知的点,用多项式函数拟合,求出拟合的函数,进而估算未知点函数值的一种插值过程
插值函数是f(x) = xigma(求和) lk*yk
本类实现了插值后显示函数图像的功能

<?php /* * Lagrange插值 * @wangbin * */class Lagrange{	private $dot = array();	public function __construct($array){        $this->dot = $array;    }    /*     * 计算lk     * */	private function get_lk($x,$k){        $num = count($this-&gt;dot['x']);		$omiga_xk = 1;		$omiga_x = 1;		for($i = 0;$i dot['x'][$k]-$this-&gt;dot['x'][$i]);				$omiga_x *= ($x - $this-&gt;dot['x'][$i]);			}		}		$lk = $omiga_x/$omiga_xk;		return $lk;	}	public function get_y($x){        $num = count($this-&gt;dot['x']);		$L = 0;		for($k = 0;$k get_lk($x,$k);            $L += ($this-&gt;dot['y'][$k]*$lk);		}		return $L;    }    public function draw(){        $img = imagecreate(500,500);        imagecolorallocate($img,255,255,2);        $num = count($this-&gt;dot['x']);        $max = 0;        for($i = 0;$i dot['x'][$i] ? $this-&gt;dot['x'][$i]:$max;        $r = 7;//点的半径        $step = 0.1;//步长        for($i = 0;$i dot['x'][$i],$this-&gt;dot['y'][$i],$r,$r,1);        }        for($i = $this-&gt;dot['x'][0]-10;$i get_y($current_x);            $next_x = $i + $step;            $next_y = $this-&gt;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'=&gt;array(10,30,100,120,220),'y'=&gt;array(20,40,240,220,340)));$x-&gt;draw();?&gt;
로그인 후 복사

1 楼 luozhong915127 2011-11-17  
数值分析(php兑现)一:Lagrange插值 全是代码,没有解释呀
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

화웨이 GT3 Pro와 GT4의 차이점은 무엇입니까? 화웨이 GT3 Pro와 GT4의 차이점은 무엇입니까? Dec 29, 2023 pm 02:27 PM

화웨이 GT3 Pro와 GT4의 차이점은 무엇입니까?

이제 Windows 11 Insiders에서 TLS를 통한 DNS를 사용할 수 있습니다. 활성화하는 방법은 다음과 같습니다. 이제 Windows 11 Insiders에서 TLS를 통한 DNS를 사용할 수 있습니다. 활성화하는 방법은 다음과 같습니다. Apr 16, 2023 pm 12:40 PM

이제 Windows 11 Insiders에서 TLS를 통한 DNS를 사용할 수 있습니다. 활성화하는 방법은 다음과 같습니다.

수정: Windows 11에서 캡처 도구가 작동하지 않음 수정: Windows 11에서 캡처 도구가 작동하지 않음 Aug 24, 2023 am 09:48 AM

수정: Windows 11에서 캡처 도구가 작동하지 않음

iPhone에서 App Store 오류에 연결할 수 없는 문제를 해결하는 방법 iPhone에서 App Store 오류에 연결할 수 없는 문제를 해결하는 방법 Jul 29, 2023 am 08:22 AM

iPhone에서 App Store 오류에 연결할 수 없는 문제를 해결하는 방법

도트는 어떤 파일인가요? 도트는 어떤 파일인가요? Jun 17, 2021 pm 03:36 PM

도트는 어떤 파일인가요?

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决 Jun 13, 2016 am 10:23 AM

php提交表单通过后,弹出的对话框怎样在当前页弹出,该如何解决

watch4pro가 더 나은가요, 아니면 gt인가요? watch4pro가 더 나은가요, 아니면 gt인가요? Sep 26, 2023 pm 02:45 PM

watch4pro가 더 나은가요, 아니면 gt인가요?

Java에서 이 메소드를 사용하는 방법 Java에서 이 메소드를 사용하는 방법 Apr 18, 2023 pm 01:58 PM

Java에서 이 메소드를 사용하는 방법

See all articles