Computing an Impedance with Complex Numbers : complex number « Data Types « C++ Tutorial






#include <complex>
#include <iomanip>
#include <iostream>
#include <cmath>

using namespace std;

complex<double> parallel_RLC_impedance( double frequency, double resistance, double inductance, double capacitance );

int main( )
{
   const double R = 1000.0;   
   const double L = 0.2;      
   const double C = 10.0e-9;  
   double frequency;

   frequency = 1.0 / sqrt( L * C );

   complex<double> impedance = parallel_RLC_impedance( frequency, R, L, C );

   cout << impedance << "   Magnitude = " << abs( impedance ) << "   Phase = " << arg( impedance ) << endl;

   impedance = parallel_RLC_impedance( frequency / 10, R, L, C );

   cout << impedance << "   Magnitude = " << abs( impedance ) << "   Phase = " << arg( impedance ) << endl;

   impedance = parallel_RLC_impedance( frequency * 10, R, L, C );

   cout << impedance << "   Magnitude = " << abs( impedance ) << "   Phase = " << arg( impedance ) << endl;
}

inline
complex<double> parallel_RLC_impedance( double frequency,double resistance, double inductance, double capacitance )
{
   complex<double> impedance_inverse( 1.0 / resistance,frequency * capacitance - 1.0 / ( frequency * inductance ) );

   return 1.0 / impedance_inverse;
}








2.26.complex number
2.26.1.Create complex numbers based on double value
2.26.2.Plus two complex numbers together
2.26.3.Complex + integer
2.26.4.Use polar to create complex number
2.26.5.Complex number: magnitude, squared magnitude and phase angle
2.26.6.Complex conjugates
2.26.7.Complex number + float number
2.26.8.print sum of two complex numbers
2.26.9.Computing an Impedance with Complex Numbers
2.26.10.The << and >> operators are overloaded relative to complex numbers.
2.26.11.Add square root of two complex numbers and print the result