使用 PHP 求解矩阵
我想用 PHP 求解矩阵。例如,如果我有三个点:(x0, y0)、(x1, y1) 和 (x2, y2)
,我想知道 p[0], p[1 ] 和 p[2]
位于 y = p[2]*x^2 + p[1]*x^1 + p[0]*x^0
中,有效范围为所有这些点。如果给出 n 个点,我想求解 y = p[n] * x^n + p[n-1] * x^(n-1) + ... + p[0] * x^ 0 。我现在所拥有的是:
<?php
$system = new EQ();
$system->add(1, 2);
$system->add(4, 5);
$system->solvePn(0);
class EQ {
private $points = array();
public function add($x, $y) {
$this->points[] = array($x, $y);
}
public function solvePn($n) {
// Solve p[n]
// So eliminate p[m], p[m-1], ..., p[n+1], p[n-1], ..., p[1], p[0]
$m = count($this->points);
$a = $m;
// Eliminate p[a]
if ($a != $n) {
}
$a--;
}
}
?>
但现在我不知道下一步该做什么。
I want to solve a matrix with PHP. For example, if I have three points: (x0, y0), (x1, y1) and (x2, y2)
, I want to know what p[0], p[1] and p[2]
is in y = p[2]*x^2 + p[1]*x^1 + p[0]*x^0
, valid for all those points. If n points are given, I want to solve y = p[n] * x^n + p[n-1] * x^(n-1) + ... + p[0] * x^0
. What I have at this point, is this:
<?php
$system = new EQ();
$system->add(1, 2);
$system->add(4, 5);
$system->solvePn(0);
class EQ {
private $points = array();
public function add($x, $y) {
$this->points[] = array($x, $y);
}
public function solvePn($n) {
// Solve p[n]
// So eliminate p[m], p[m-1], ..., p[n+1], p[n-1], ..., p[1], p[0]
$m = count($this->points);
$a = $m;
// Eliminate p[a]
if ($a != $n) {
}
$a--;
}
}
?>
But now I don't know what to do next.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
谢谢达文和罗曼。我用的是拉格朗日,现在效果很好。例如,如果给定 3 个点 (1,1)、(2,3)、(3,27),则该类将使用拉格朗日计算多项式近似值。现在您可以调用 $system->f(4) 来计算该多项式上 x=4 的 y 值。
Thanks davin and Roman. I used Lagrange for it, and it works fine now. For example, if there are 3 points given (1,1), (2,3), (3,27), the class will use Lagrange to calculate a polynomial approximation. Now you can call $system->f(4) to calculate the y-value for x=4 on this polynome.