2010-08-19 298 views
0

iam在我自己的类上使用加减乘除复数2的复数,除此之外它还可以得到复数的三角函数和双曲函数 你能帮忙吗我请在实施这个三角函数和双曲函数在C++中的复数的三角函数和双曲函数

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

无效复杂::得到(){

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

} 无效复杂::添加(复&总和,常量复杂& NUM1,常量复杂& NUM2) {

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

}

void complex :: sub(complex & sub吨,常量复杂& NUM1,常量复杂& NUM2) {

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

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

}

空隙复杂::多(复杂&产物,常量复杂& NUM1,常量复杂& NUM2)

{

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

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

}

空隙复杂:: DIV(复杂& divis,常量复杂& NUM1,常量复杂& NUM2)

{

divis.real =((num1.real num2.real)+(NUM1 .imag num2.imag))/((num2.real num2.real)+(num2.imag num2.imag));

divis.imag =((num1.imag num2.real) - (num1.real num2.imag))/((num2.real num2.real)+(num2.imag num2.imag) );

}

复杂复杂:: _罪(无效)

{ 络合物; 复合温度; temp.real = sin(a.real)* cosh(a.imag); temp.imag = cos(a.real)* sinh(a.imag);

return temp; 

}

+0

请发布您迄今为止编写的代码。人们通常不喜欢只为你写代码。 – 2010-08-19 12:26:47

+0

当然,你已经看过http://www.boost.org/doc/libs/1_44_0/libs/math/doc/html/index.html,发现它不符合你的要求,对吧? – 2010-08-19 12:30:12

+1

@pontus:或许这已经足够:http://cplusplus.com/reference/std/complex/。不需要Boost。 – rubenvb 2010-08-19 12:31:09

回答

3

This page如何,你可以轻松地与您的实和复杂零件的定义三角函数会谈。

This page开始与双曲正弦和COSH(在Ë进行定义,从而可以使用用于该exp功能),其允许用户定义的其他双曲函数。

1

这听起来像功课,但在这种情况下,标准图书馆已经在<complex> header为你完成了工作。

如果你真的想要重新实现它们,请看雅各布的答案,它会有细微的细节。

0

由于三角函数和双曲函数是根据复指数定义的,因此首先通过实现欧拉恒等式(其仅使用真三角函数产生复合结果)开始。