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】:这听起来像家庭作业,但在这种情况下,标准库已经在 <complex>
header 中为您完成了这项工作。
如果您真的想重新实现它们,请参阅 Jacob 的回答,其中包含血腥的小细节。
【讨论】:
【参考方案3】:由于三角函数和双曲函数是根据复数幂来定义的,因此首先要实现欧拉恒等式(仅使用实三角函数产生复数结果)。
【讨论】:
以上是关于c++中复数的三角函数和双曲函数的主要内容,如果未能解决你的问题,请参考以下文章