markbaker / complex-functions
PHP 复数处理函数库
1.0.1
2021-06-29 15:32 UTC
Requires
- php: ^7.2 || ^8.0
- markbaker/complex: ^3.0
Requires (Dev)
- dealerdirect/phpcodesniffer-composer-installer: ^0.7.0
- phpcompatibility/php-compatibility: ^9.0
- phpunit/phpunit: ^7.0 || ^8.0 || ^9.3
- squizlabs/php_codesniffer: ^3.4
README
PHP 复数函数库
该库目前提供以下操作
- 加法
- 减法
- 乘法
- 除法
- 除以
- 分配到
包括以下函数:
- 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);