c++中复数的三角函数和双曲函数

Posted

技术标签:

【中文标题】c++中复数的三角函数和双曲函数【英文标题】:Trigonometric and hyperbolic functions for complex number in c++ 【发布时间】:2010-08-19 12:24:41 【问题描述】:

我正在研究我自己的复数类,它可以加、减、乘、除 2 个复数,除了这种行为之外,它还获得了复数的三角函数和双曲函数 你能帮我实现这个三角函数和双曲函数吗

这是我的行为,包括正弦函数,这个实现是真的吗??

空复数::get()

cout<<"Real part is:"<<real<<"\n"<<"Imaginary part is:"<<imag<<"\n";

void complex::add(complex &sum ,const complex &num1,const complex &num2 )

sum.real=num1.real+num2.real;
sum.imag=num1.imag+num2.imag;

void complex::sub (complex &subt,const complex &num1,const complex &num2 )

subt.real=num1.real-num2.real;

subt.imag=num1.imag-num2.imag;

void complex::multi (complex &product,const complex &num1,const complex &num2)

product.real=(num1.real*num2.real)-(num1.imag*num2.imag);

product.imag=(num1.real*num2.imag)+(num1.imag*num2.real);

void complex::div (complex &divis,const complex &num1,const complex &num2)

divis.real=((num1.realnum2.real)+(num1.imagnum2.imag))/((num2.realnum2.real)+(num2.图像num2.imag));

divis.imag=((num1.imagnum2.real)-(num1.realnum2.imag))/((num2.realnum2.real)+(num2.图像num2.imag));

复复数::_sin(void)

复杂的; 复杂的温度; temp.real=sin(a.real)*cosh(a.imag); temp.imag=cos(a.real)*sinh(a.imag);

return temp;

【问题讨论】:

请贴出你目前写的代码。人们通常不喜欢只为您编写代码。 当然,你看了boost.org/doc/libs/1_44_0/libs/math/doc/html/index.html,发现不符合你的要求吧? @pontus:也许这就足够了:cplusplus.com/reference/std/complex。不需要 Boost。 【参考方案1】:

This page 谈论如何使用数字的实部和复数部分轻松定义三角函数。

This page 以 sinh 和 cosh 开头(根据 e 定义,因此您可以使用 exp 函数),它允许您定义其他双曲函数。

【讨论】:

【参考方案2】:

这听起来像家庭作业,但在这种情况下,标准库已经在 &lt;complex&gt; header 中为您完成了这项工作。

如果您真的想重新实现它们,请参阅 Jacob 的回答,其中包含血腥的小细节。

【讨论】:

【参考方案3】:

由于三角函数和双曲函数是根据复数幂来定义的,因此首先要实现欧拉恒等式(仅使用实三角函数产生复数结果)。

【讨论】:

以上是关于c++中复数的三角函数和双曲函数的主要内容,如果未能解决你的问题,请参考以下文章

神经网络的双曲线正切激活函数

matlab:tanh(a)是个啥函数?

FORTRAN中sech函数怎样表示

matlab的简单函数集锦?

matlab fill函数的绘图颜色怎样设定?

C++编程,定义一个复数类