支持PHP 5.5.9的复数操作PHP类

2.0.0 2020-08-26 10:42 UTC

README

有什么变化?

添加了对PHP 5.5.9的支持

处理复数的PHP类

主分支: 构建状态

开发分支: 构建状态

Complex Numbers

该库目前提供以下操作

  • 加法
  • 减法
  • 乘法
  • 除法
    • 除以
    • 除入

以及以下函数:

  • theta(极角)
  • rho(极距离/半径)
  • 共轭
  • 负数
  • 倒数(复数的倒数)
  • cos(余弦)
  • acos(反余弦)
  • cosh(双曲余弦)
  • acosh(反双曲余弦)
  • sin(正弦)
  • asin(反正弦)
  • sinh(双曲正弦)
  • asinh(反双曲正弦)
  • sec(正割)
  • asec(反正割)
  • sech(双曲正割)
  • asech(反双曲正割)
  • csc(余割)
  • acsc(反正割)
  • csch(双曲余割)
  • acsch(反双曲余割)
  • tan(正切)
  • atan(反正切)
  • tanh(双曲正切)
  • atanh(反双曲正切)
  • cot(余切)
  • acot(反正切)
  • coth(双曲余切)
  • acoth(反双曲余切)
  • sqrt(平方根)
  • exp(指数)
  • ln(自然对数)
  • log10(以10为底的对数)
  • log2(以2为底的对数)
  • pow(实数的幂)

使用方法

要创建一个新的复数对象,您可以提供实部、虚部和后缀部分作为单独的值,或者作为构造函数传递的值的数组;或者是一个表示值的字符串。例如

$real = 1.23;
$imaginary = -4.56;
$suffix = 'i';

$complexObject = new Complex\Complex($real, $imaginary, $suffix);

或者

$real = 1.23;
$imaginary = -4.56;
$suffix = 'i';

$arguments = [$real, $imaginary, $suffix];

$complexObject = new Complex\Complex($arguments);

或者

$complexString = '1.23-4.56i';

$complexObject = new Complex\Complex($complexString);

复数对象是不可变的:每次您调用一个方法或向一个返回复数值的函数传递复数值时,都会返回一个新的复数对象,而原始对象将保持不变。这也允许您像使用流畅接口那样链式调用多个方法(只要它们是返回复数结果的方法)。

执行数学运算

要使用复数值执行数学运算,您可以针对复数值调用适当的方法,传递其他值作为参数

$complexString1 = '1.23-4.56i';
$complexString2 = '2.34+5.67i';

$complexObject = new Complex\Complex($complexString1);
echo $complexObject->add($complexString2);

或将所有值传递给适当的函数

$complexString1 = '1.23-4.56i';
$complexString2 = '2.34+5.67i';

echo Complex\add($complexString1, $complexString2);

如果您要对多个值执行相同的操作(例如,要添加三个或更多复数),则可以将多个参数传递给任何操作。

您可以将这些参数作为复数对象传递,或作为将解析为复数对象的数组或字符串。

使用函数

当调用复数值的任何可用函数时,您可以通过调用复数对象的相关方法

$complexString = '1.23-4.56i';

$complexObject = new Complex\Complex($complexString);
echo $complexObject->sinh();

或者您可以像在过程代码中一样调用函数,将复数对象作为参数传递

$complexString = '1.23-4.56i';

$complexObject = new Complex\Complex($complexString);
echo Complex\sinh($complexObject);

当使用函数过程调用时,您可以以复数对象、数组或字符串的形式传递参数,该字符串将解析为复数对象。

$complexString = '1.23-4.56i';

echo Complex\sinh($complexString);

在调用 pow() 函数(唯一需要额外参数实现的函数)时,需要按照程序方式传递两个参数

$complexString = '1.23-4.56i';

$complexObject = new Complex\Complex($complexString);
echo Complex\pow($complexObject, 2);

或者调用方法时传递额外参数

$complexString = '1.23-4.56i';

$complexObject = new Complex\Complex($complexString);
echo $complexObject->pow(2);