六、STL的数值计算---复数运算

stl 的数值运算:

  • 复数运算
  • 数组运算
  • 通用数值运算
  • 全局性数学函数

1.复数运算

  1. 复数是由实部和虚部组成的数值。
  2. 虚部的特点是: 其平方值为负数,即复数虚部的带着i,i是-1的平方根

类complex定义与<complex>中,
类定义:

template< class T >
class complex;

stl还提供了,float,double,long double的特殊版本。

1.复数的成员函数

  • 构造函数
  • 实部函数
  • 虚部函数
  • 运算符函数
1.构造函数

复数有两个构造函数
函数声明:

complex( const T& re = T(), const T& im = T() );


complex( const complex& rhs );

说明:
1. 第一种形式利用参数re,和im确定复数对象
2. 第二种形式利用原有的复数对象

例子:

complex<float>c1(1.5,2.5);//第一种形式
complex<float> c2(c1); //第二种形式

2.实部函数和虚部函数

  • real
  • img
    函数原型:
//real
T real() const;         (1) 
void real( T value );           (2)
  1. 第一种: 返回实部
  2. 第二种:设置实部
//img
T imag() const;         (1) 
void imag( T value );       (2) 
  1. 第一种: 返回虚部
  2. 第二种:设置虚部

3.复数运算符

成员函数:

  • operator+=
  • operator-=
  • operator/=
  • operator*=

非成员函数:

  • operator+
  • operator- //对复数一元运算

  • operator+
  • operator-
  • operator*
  • operator/ : 对两个复数或者一个复数和一个标量运用复数运算

  • operator==
  • operator!= :比较两个复数或者一个复数和一个标量

4.其他运算

复数可以进行其他简单运算,如
- 绝对值函数: abs()
- 绝对值的平方: norm()
- 复数的相位 : arg
- 输入与输出:
- 共轭函数: conj
- 极坐标函数 : polar

1.绝对值函数(abs)

函数原型:

template< class T > 
T abs( const complex<T>& z );

复数的绝对值计算公式:
(实部的平方 + 虚部的平方)的平方根

2.绝对值的平方(norm)

函数原型

template< class T > 
T norm( const complex<T>& z );

复数的绝对值的平方计算公式:
(实部的平方 + 虚部的平方)

3.复数的相位(arg)

函数原型为:

template< class T > 
T arg( const complex<T>& z );

(1). 返回值:若无错误发生,则返回 z 在区间 (−π; π) 内的辐角。返回的单位是弧度。是复数的极坐标形式的相位角。

4.输出和输入
operator<<
operator>> : 复数的序列化和反序列化
5.共轭函数(conj)

函数原型:

template< class T > 
complex<T> conj( const complex<T>& z );

产生并返回一个复数。共轭复数是指实部相同,虚部与原复数的虚部互相反。

6.极坐标函数(polar)

函数原型:

template< class T > 
complex<T> polar( const T& rho, const T& theta = 0 );

说明:
1. rho: 级
2. theta: 角
【没搞懂】

3.复数的超越函数

复数的超越函数一般指的是三角函数和指数函数
三角函数:

  • sin(std::complex) :计算一个复数的正弦(sin(z))
  • cos(std::complex) :计算一个复数的余弦(cos(z))
  • tan(std::complex) :计算一个复数的正切(tan(z))
  • asin(std::complex) (C++11) :计算一个复数的反正弦 (arcsin(z))
  • acos(std::complex) (C++11) :计算一个复数的反余弦(arccos(z))
  • atan(std::complex) (C++11) 计算一个复数的反正切 (arctan(z))

双曲函数:

  • sinh(std::complex) :计算复数的双曲正弦(sh(z))
  • cosh(std::complex) :计算复数的双曲余弦(ch(z))
  • tanh(std::complex) :计算复数的双曲正切
  • asinh(std::complex) (C++11) :计算复数的双曲反正弦
  • acosh(std::complex) (C++11) :计算复数的双曲反余弦
  • atanh(std::complex) (C++11) :计算复数的双曲反正切

指数函数:
- exp(std::complex) :以 e为底复数的指数
- log(std::complex) :沿负实轴割线的复数的自然对数
- log10(std::complex) :沿负实轴割线的复数的常用对数

幂函数:
- pow(std::complex) :复数的幂,两个参数或其一可能是复数
- sqrt(std::complex) :右半侧平面范围内的复数平方根

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值