Example #1
0
<?php

class Math_Complex
{
    // Свойства: действительная и мнимая части.
    public $re, $im;
    // Метод: добавить число к текущему значению. число задается
    // своей действительной и мнимой частью.
    function add(Math_Complex $y)
    {
        $this->re += $y->re;
        $this->im += $y->im;
    }
    // Преобразуем число в строку
    function __toString()
    {
        return "({$this->re}, {$this->im})";
    }
}
$a = new Math_Complex();
$a->re = 314;
$a->im = 101;
$b = new Math_Complex();
$b->re = 303;
$b->im = 6;
$a->add($b);
echo $a->__toString();
<?php

/*
 * To test Math_Complex and Math_ComplexOp
 * $Id$
 */
require_once 'Math/ComplexOp.php';
$a = new Math_Complex(0.3, 0.5);
$b = new Math_Complex(1.0, -M_PI_2);
$im = -1.2;
echo "a = " . $a->toString() . "\n";
echo "b = " . $b->toString() . "\n";
echo "im = {$im}i\n";
$z = Math_ComplexOp::createFromPolar(0.022, -0.223);
echo "from polar, z = " . $z->toString() . "\n";
$z = Math_ComplexOp::sqrt($a);
echo "sqrt(a) = " . $z->toString() . "\n";
$z = Math_ComplexOp::sqrtReal(-2.3);
echo "sqrtReal(a) = " . $z->toString() . "\n";
$z = Math_ComplexOp::exp($a);
echo "exp(a) = " . $z->toString() . "\n";
$z = Math_ComplexOp::log($a);
echo "log(a) = " . $z->toString() . "\n";
$z = Math_ComplexOp::log10($a);
echo "log10(a) = " . $z->toString() . "\n";
$z = Math_ComplexOp::conjugate($a);
echo "conjugate(a) = " . $z->toString() . "\n";
$z = Math_ComplexOp::negative($a);
echo "negative(a) = " . $z->toString() . "\n";
$z = Math_ComplexOp::inverse($a);
echo "inverse(a) = " . $z->toString() . "\n";