Narzędzia użytkownika

Narzędzia witryny


liczby_zespolone_complex

Różnice

Różnice między wybraną wersją a wersją aktualną.

Odnośnik do tego porównania

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
liczby_zespolone_complex [2008/11/09 15:21]
lromanow
liczby_zespolone_complex [2008/11/09 17:26]
lromanow
Linia 1: Linia 1:
-====== Liczby zespolone <​complex> ​======+==== Liczby zespolone <​complex>​ ====
  
 +Klasa szablonowa ''​**complex**''​ służy do reprezentacji i manipulacji liczbami zespolonymi. Operacje zdefiniowane na liczbach zespolonych pozwalają na swobodne mieszanie obiektów tej klasy z wbudowanymi typami numerycznymi. Należy zauważyć, że większość operacji wykonywanych na obiektach tej klasy to zwykłe funkcje. Wyjątkami są metody ''​real()''​ i ''​imag()''​ należące do klasy ''​**complex**''​.
  
 +=== Deklaracja liczb zespolonych ===
  
-Klasa szablonowa **complex** służy do reprezentacji i manipulacji liczbami zespolonymi. Operacje zdefiniowane na liczbach zespolonych pozwalają na swobodne mieszanie obiektów tej klasy wbudowanymi typami numerycznymi. Należy zauważyć, że większość operacji wykonywanych na obiektach tej klasy to zwykłe funkcje. Wyjątkami są metody //​real()// ​//imag()// należące do klasy **complex**.+Argument szablonu określa typ związany wartościami części rzeczywistej ​urojonej obiektu. Ten argument musi być jednym z trzech dostępnych typów zmiennoprzecinkowych ''​**float**'',​ ''​**double**''​ lub ''​**long double**''​.
  
-== xxx ==+Dostępne są cztery konstruktory. Konstruktor bezparametrowy inicjalizuje obie części liczby zespolonej wartością zero. Konstruktor jednoargumentowy incjalizuje wartością parametru część rzeczywistą i zeruje urojoną. Konstruktor dwuargumentowy inicjalizuje obie części liczby zespolonej. Ostatecznie,​ konstruktor kopiujący pozwala inicjalizować obiekt wartościami innego dostępnego obiektu klasy.
  
-[[biblioteka_standardowa]]+<code cpp> 
 +   ​complex<​float>​ cplx_one; ​              // wartość 0 + 0i 
 +   ​complex<​float>​ cplx_two(3.14); ​        // wartość 3.14 + 0i 
 +   ​complex<​float>​ cplx_three(1.5,​ 3.14)   // wartość 1.5 + 3.14i 
 +   ​complex<​float>​ cplx_four(cplx_two); ​   // wartość również 3.14 + 0i 
 +</​code>​
  
 +Liczbie zespolonej ''​**complex**''​ można przypisać wartość innej liczby zespolonej. Ponieważ konstruktor jednoargumentowy jest również wykorzystywany jako operator konwersji, można również przypisać liczbie zespolonej wartość rzeczywistą.
  
 +<code cpp>
 +   ​cplx_one = cplx_three; ​                // staje się 1.5 + 3.14i
 +   ​cplx_three = 2.17;                     // staje się 2.17 + 0i
 +</​code>​
 +
 +Funkcja ''​polar()''​ może służyć do konstrukcji liczby zespolonej dla danego modułu i fazy kąta.
 +
 +<code cpp>
 +   ​cplx_four = polar(5.6, 1.8);
 +</​code>​
 +
 +Wartość sprzężona powstaje z użyciem funkcji ''​conj()''​.
 +
 +<code cpp>
 +   ​complex<​float>​ cplx_five = conj(cplx_four);​
 +</​code>​
 +
 +=== Dostęp do wartości liczby zespolonej ===
 +
 +Metody klasy ''​**complex**''​ ''​real()''​ i ''​imag()''​ zwracają wartości odpowiednio części rzeczywistej i urojonej liczby zespolonej. Funkcje te można również wywołać jako zwykłe funkcje z obiektem klasy ''​**complex**''​ jako argument.
 +
 +<code cpp>
 +   // poniższy kod powinien dać ten sam rezulatat
 +   cout << cplx_one.real() << "​+"​ << cplx_one.imag() << "​i"​ << endl;
 +   cout << real(cplx_one) ​ << "​+"​ << imag(cplx_one) ​ << "​i"​ << endl;
 +</​code>​
 +
 +=== Operatory artmetyczne ===
 +
 +Operatory artmetyczne ''​+'',​ ''​-'',​ ''​*''​ oraz ''/''​ mogą być używane zgodnie z przyjętą konwencją. Wszystkie przyjmują jako argumenty albo dwie liczby zespolone albo liczbę zespoloną i wartość rzeczywistą. Ponadto zdefiniowane są dla każdego z nich operatory przypisania.
 +
 +<code cpp>
 +   cout << cplx_one + cplx_two << endl;     // wartość ???
 +   cout << cplx_one - 3.14 << endl;         // wartość ???
 +   cout << 2.75 * cplx_two << endl;         // wartość ???
 +   ​cplx_one += cplx_three / 2.0;            // wartość ???
 +</​code>​
 +
 +Operatory jednoargumentowe ''​+''​ i ''​-''​ również można używać.
 +
 +<code cpp>
 +   cout << -cplx_one << endl;               // wartość ???
 +</​code>​
 +
 +=== Porównywanie wartości ===
 +
 +Dwie liczby zespolone ''​**complex**''​ mogą być przetestowane na równość lub nierówność wykorzystując operatory ''​==''​ i ''​!=''​. Dwie wartości są równe, gdy odpowiadające sobie części liczby są sobie równe.
 +
 +<code cpp>
 +   cout << cplx_one == cplx_three << endl;  // wartość false
 +   cout << cplx_one != cplx_three << endl;  // wartość true
 +</​code>​
 +
 +Liczby zespolone nie mogą być porównywane za pomocą innych operatorów.
 +
 +=== Strumienie I/O ===
 +
 +Liczby zespolone klasy ''​**complex**''​ mogą być pisane do strumienia bądź z niego czytane wykorzystując przyjętą konwencję dla strumieni I/O. Wartość pisana jest do strumienia w nawiasach jako ''​(u,​v)''​. Wartość jest czytana ze strumienia jako dwie wartości numeryczne oddzielone przecinkiem i otoczone nawiasami.
 +
 +=== Wartość normalna i moduł ===
 +
 +Funkcja ''​norm()''​ zwraca normę liczby zespolonej, która odpowiada sumie kwadratów części rzeczywistej i urojonej. Funkcja ''​abs()''​ zwraca moduł, który jest pierwiastkiem kwadratowym normy liczby zespolonej.
 +
 +<code cpp>
 +   cout << norm(cplx_two) << endl;
 +   cout << abs(cplx_two) ​ << endl;
 +<​\code>​
 +
 +Kąt fazowy liczby zespolonej można uzyskać za pomocą funkcji ''​arg()''​.
 +
 +<code cpp>
 +   cout << cplx_four << " w postaci biegunowej wynosi"​
 +        << abs(cplx_four) << "​e-"​ << arg(cplx_four) << endl;
 +<​\code>​
 +
 +=== Funkcje trygonometryczne ===
 +
 +Funkcje tryugonometryczne zdefiniowane dla typów zmiennoprzecinkowych zostały rozszerzone dla liczb zespolonych. Dotyczy to funkcji ''​sin()'',​ ''​cos()'',​ ''​tan()'',​ ''​sinh()'',​ ''​cosh()''​ i ''​tanh()''​. Każda z nich bierze jako argument liczbę zespoloną **complex** i zwraca podobnie liczbę zespoloną.
 +
 +=== Inne funkcje ===
 +
 +Podobnie jak funkcje trygonometryczne funkcje ''​exp()'',​ ''​log()'',​ ''​log10()''​ i ''​sqrt()''​ zostały rozszerzone dla liczb zespolonych. Jako argument biorą liczbę ''​**complex**''​ i zwracają również ''​**complex**''​.
 +
 +Biblioteka standardowa definiuje kilka wersji funkcji ''​pow()''​. Istnieją osobne definicje dotyczące podnoszenia liczb zespolonych do wartości całkowitej,​ zespolonej i rzeczywistej. Podobnie można podnosić wartość rzczywistą do wartości ''​**complex**''​.
 +
 +\\
 +----
 +[[start]] >> [[biblioteka_standardowa]]
liczby_zespolone_complex.txt · ostatnio zmienione: 2008/11/10 18:31 przez lromanow