2010-08-19 296 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

由於三角函數和雙曲函數是根據復指數定義的,因此首先通過實現歐拉恆等式(其僅使用真三角函數產生複合結果)開始。