markbaker/complex-functions

1.0.1 2021-06-29 15:32 UTC

This package is auto-updated.

Last update: 2024-09-20 18:18:37 UTC


README

PHP 复数函数库

Build Status Total Downloads Latest Stable Version License

Complex Numbers

该库目前提供以下操作

  • 加法
  • 减法
  • 乘法
  • 除法
    • 除以
    • 分配到

包括以下函数:

  • theta (极坐标的 theta 角度)
  • rho (极坐标的距离/半径)
  • 共轭
  • 负数
  • 倒数 (复数的 1)
  • 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 (实数的幂)

安装

composer require markbaker/complex-functions:^1.0

(需要 Composer 版本 2)

用法

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

$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\Operations::add($complexString1, $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';

echo Complex\Functions::sinh($complexString);

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

$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);