Complex Numbers and Functions of Complex Variables
Complex Numbers
Complex numbers are easily implemented in MATLAB in standard binary form a+bi or a+bj, where the symbol i or j represents the imaginary unit. It is not necessary to include the product symbol (the asterisk) before the imaginary unit, but if it is included, everything will still work correctly. However, it is important that spaces are not introduced between the imaginary unit and its coefficient.
A complex number can have a symbolic real or imaginary part, and operations on complex numbers can be carried out in any mode of precision that is set with the command format. Therefore, it is possible to work with complex numbers in exact rational format via the command format rat.
The common operations (sum, difference, product, division and exponentiation) are carried out on complex numbers in the usual way. Examples are shown in Figure 3-1.
Obviously, as the real numbers are a subset of the complex numbers, a function of complex variables will also be valid for real variables.
General Functions of Complex Variables
MATLAB has a range of preset general functions of complex variables, which of course will also be valid for integer, rational, and real variables. The most important functions are presented in the following sections.
Trigonometric Functions of a Complex Variable
Below is a table of the trigonometric functions of a complex variable and their inverses that MATLAB incorporates, illustrated with examples.
Function |
Inverse |
---|---|
sin (z) sine >> sin(5-6i) ans = -1 9343e + 002-5 7218e + 001i |
asin(z) arcsine >> asin(1-i) ans = 0.6662 - 1.0613i |
cos (z) cosine >> cos(3 + 4i) ans = -27.0349 - 3.8512i |
acos (z) arccosine >> acos(-i) ans = 1.5708 + 0.8814i |
tan (z) tangent >> tan(pi/4i) ans = 0 - 0.6558i |
atan(z) and atan2(z) arctangent >> atan(-pi*i) ans = 1.5708 - 0.3298i |
csc (z) inverse cosecant >> csc(1-i) ans = 0.6215 + 0.3039i |
acsc (z) arccosecant >> acsc(2i) ans = 0 - 0.4812i |
sec (z) secant >> sec(-i) ans = 0.6481 |
asec (z) arcsecant >> asec(0.6481+0i) ans = 0 + 0.9999i |
cot (z) cotangent >> cot(-j) ans = 0 + 1.3130i |
acot (z) arccotangent >> acot(1-6j) ans = 0.0277 + 0.1635i |
Hyperbolic Functions of a Complex Variable
Below is a table of the hyperbolic functions of a complex variable and their inverses that MATLAB incorporates, illustrated with examples.
Function |
Inverse |
---|---|
sinh(z) hyperbolic sine >> sinh(1+i) ans = 0.6350 + 1.2985i |
asinh(z) arc hyperbolic sine >> asinh(0.6350 + 1.2985i) ans = 1.0000 + 1.0000i |
cosh(z) hyperbolic cosine >> cosh(1-i) ans = 0.8337 - 0.9889i |
acosh(z) arc hyperbolic cosine >> acosh(0.8337 - 0.9889i) ans = 1.0000 - 1.0000i |
tanh(z) hyperbolic tangent >> tanh(3-5i) ans = 1.0042 + 0.0027i |
atanh(z) arc hyperbolic tangent >> atanh(3-41) ans = -0.0263 - 1.5708i |
csch(z) hyperbolic cosecant >> csch(i) ans = 0 - 1.1884i |
acsch (z) arc hyperbolic cosecant >> acsch(- 1.1884i) ans = 0 + 1.0000i |
sech(z) hyperbolic secant >> sech(i^i) ans= 0.9788 |
asech(z) arc hyperbolic secant >> asech(5-0i) ans = 0 + 1.3694i |
coth(z) hyperbolic cotangent >> coth(9+i) ans = 1.0000 - 0.0000i |
acoth(z) arc hyperbolic cotangent >> acoth(1-i) ans = 0.4024 + 0.5536i |
Exponential and Logarithmic Functions of a Complex Variable
Below is a table of exponential and logarithmic functions that MATLAB incorporates, illustrated with examples.
Function |
Meaning |
---|---|
exp (z) |
Base e exponential function (e ^ x) >> exp(1-i) ans = 1.4687 - 2.2874i |
log (x) |
Base e logarithm >> log(1.4687-2.2874i) ans = 1.0000 - 1.0000i |
log10 (x) |
Base 10 logarithm >> log10 (100 + 100i) ans = 2.1505 + 0.3411i |
log2 (x) |
Base 2 logarithm >> log2(4-6i) ans = 2.8502 - 1.4179i |
pow2 (x) |
Base 2 power function >> pow2(2.8502-1.4179i) ans = 3.9998 - 6.0000i |
sqrt (x) |
Square root >> sqrt(1+i) ans = 1.0987 + 0.4551i |
Specific Functions of a Complex Variable
MATLAB incorporates a group of functions specifically to work with moduli, arguments, and real and imaginary parts of complex numbers. Among these are the following:
Function |
Meaning |
---|---|
abs (Z) |
The modulus (absolute value) of Z >> abs(12.425-8.263i) ans = 14.9217 |
angle (Z) |
The argument of Z >> angle(12.425-8.263i) ans = -0.5869 |
conj (Z) |
The complex conjugate of Z >> conj(12.425-8.263i) ans = 12.4250 + 8.2630i |
real (Z) |
The real part of Z >> real(12.425-8.263i) ans = 12.4250 |
imag (Z) |
The imaginary part of Z >> imag(12.425-8.263i) ans = -8.2630 |
floor (Z) |
Applies the floor function to real(Z) and imag(Z) >> floor(12.425-8.263i) ans = 12.0000 - 9.0000i |
ceil (Z) |
Applies the ceil function to real(Z) and imag(Z) >> ceil(12.425-8.263i) ans = 13.0000 - 8.0000i |
round (Z) |
Applies the round function to real(Z) and imag(Z) >> round(12.425-8.263i) ans = 12.0000 - 8.0000i |
fix (Z) |
Applies the fix function to real(Z) and imag(Z) >> fix(12.425-8.263i) ans = 12.0000 8.0000i |
Basic Functions with a Complex Vector Argument
MATLAB enables you to work with complex matrices and vector functions. We must not forget that these functions are also valid for real variables, since the real numbers are a special case of the complex numbers, being complex numbers with zero imaginary part. Below is a table summarizing the specific functions of a complex vector that MATLAB offers. Later, when we tabulate the functions of a complex matrix variable, we will observe that all of them are also valid for vector variables, a vector being a particular case of a matrix.
max (V) |
Maximum component (for complex vectors the max is calculated as the component with maximum absolute value) >> max([1-i 1+i 3-5i 6i]) ans = 0 + 6.0000i >> max([1, 0, -23, 12, 16]) ans = 16 |
min (V) |
Minimum component (for complex vectors the min is calculated as the component with minimum absolute value) >> min([1-i 1+i 3-5i 6i]) ans = 1.0 - 1.0000i >> min([1, 0, -23, 12, 16]) ans = -23 |
mean (V) |
Arithmetic mean of the components of V >> mean([1-i 1+i 3-5i 6i]) ans = 1.2500 + 0.2500i >> mean([1, 0, -23, 12, 16]) ans = 1.2000 |
median (V) |
Median of the components of V >> median([1-i 1+i 3-5i 6i]) ans = 2.0000 2.0000i >> median([1, 0, - 23, 12, 16]) ans = 1 |
std (V) |
Standard deviation of the components of V >> std([1-i 1+i 3-5i 6i]) ans = 4.7434 >> std([1, 0, -23, 12, 16]) ans = 15.1888 |
sort (V) |
Sorts the components of V in ascending order. For complex vectors the order is determined by the absolute values of the components. >> sort([1-i 1+i 3-5i 6i]) ans = Columns 1 through 2 1.0000 - 1.0000i 1.0000 + 1.0000i Columns 3 through 4 3.0000 - 5.0i 6.0000i >> sort([1, 0, -23, 12, 16]) ans = -23 0 1 12 16 |
sum (V) |
Sums the components of V >> sum([1-i 1+i 3-5i 6i]) ans = 5.0000 + 1.0000i >> sum([1, 0, -23, 12, 16]) ans = 6 |
prod (V) |
Finds the product of the elements of V, so n!= prod(1:n) >> prod([1-i 1+i 3-5i 6i]) ans = 60.0000 + 36.0000i >> prod([1, 0, -23, 12, 16]) ans = 0 |
cumsum (V) |
Gives the cumulative sums of V >> cumsum([1-i 1+i 3-5i 6i]) ans = Columns 1 through 2 1.0000 - 1.0000i 2.0000 Columns 3 through 4 5.0000 - 5.0000i 5.0000 + 1.0000i >> cumsum([1, 0, -23, 12, 16]) ans = 1 1 -22 -10 -6 |
cumprod (V) |
Gives the cumulative products of V >> cumprod([1-i 1+i 3-5i 6i]) ans = Columns 1 through 2 1.0000 - 1.0000i 2.0000 Columns 3 through 4 6.0000 - 10.0000i 60.0000 + 36.0000i >> cumprod([1, 0, -23, 12, 16]) ans = 1 0 0 0 0 |
diff (V) |
Gives the vector of first differences of the components of V (Vt - Vt-1) >> diff([1-i 1+i 3-5i 6i]) ans = 0 + 2.0000i 2.0000 - 6.0000i -3.0000 + 11.0000i >> diff([1, 0, -23, 12, 16]) ans = -1 -23 35 4 |
gradient (V) |
Gives the gradient of V > gradient([1-i 1+i 3-5i 6i]) ans = Columns 1 through 3 0 + 2.0000i 1.0000 - 2.0000i -0.5000 + 2.5000i Column 4 -3.0000 + 11.0000i >> gradient([1, 0, -23, 12, 16]) ans = -1.0000 -12.0000 6.0000 19.5000 4.0000 |
del2 (V) |
Gives the Laplacian of V (5-point discrete) >> del2([1-i 1+i 3-5i 6i]) ans = Columns 1 through 3 2.2500 - 8.2500i 0.5000 - 2.0000i -1.2500 + 4.2500i Column 4 -3.0000 + 10.5000i >> del2 ([1, 0, -23, 12, 16]) ans = -25.5000 -5.5000 14.5000 -7.7500 -30.0000 |
fft (V) |
Returns the discrete Fourier transform of V >> fft([1-i 1+i 3-5i 6i]) ans = Columns 1 through 3 5.0000 + 1.0000i -7.0000 + 3.0000i 3.0000 - 13.0000i Column 4 3.0000 + 5.0000i >> fft([1, 0, -23, 12, 16]) ans = Columns 1 through 3 6.0000 14.8435 + 35.7894i -15.3435 - 23.8824i Columns 4 through 5 -15.3435 + 23.8824i 14.8435 - 35.7894i |
fft2 (V) |
Returns the two-dimensional discrete Fourier transform of V >> fft2([1-i 1+i 3-5i 6i]) ans = Columns 1 through 3 5.0000 + 1.0000i -7.0000 + 3.0000i 3.0000 - 13.0000i Column 4 3.0000 + 5.0000i >> fft2([1, 0, -23, 12, 16]) ans = Columns 1 through 3 6.0000 14.8435 + 35.7894i -15.3435 - 23.8824i Columns 4 through 5 -15.3435 + 23.8824i 14.8435 - 35.7894i |
ifft (V) |
Returns the inverse discrete Fourier transform of V >> ifft([1-i 1+i 3-5i 6i]) ans = Columns 1 through 3 1.2500 + 0.2500i 0.7500 + 1.2500i 0.7500 - 3.2500i Column 4 -1.7500 + 0.7500i >> ifft([1, 0, -23, 12, 16]) ans = Columns 1 through 3 1.2000 2.9687 - 7.1579i -3.0687 + 4.7765i Columns 4 through 5 -3.0687 - 4.7765i 2.9687 + 7.1579i |
ifft2 (V) |
Returns the inverse two dimensional discrete Fourier transform of V >> ifft2([1-i 1+i 3-5i 6i]) ans = Columns 1 through 3 1.2500 + 0.2500i 0.7500 + 1.2500i 0.7500 - 3.2500i Column 4 -1.7500 + 0.7500i >> ifft2([1, 0, -23, 12, 16]) ans = Columns 1 through 3 1.2000 2.9687 - 7.1579i -3.0687 + 4.7765i Columns 4 through 5 -3.0687 - 4.7765i 2.9687 + 7.1579i |
Basic Functions with a Complex Matrix Argument
The functions described in the above table also support as an argument a complex matrix Z, in which case the result is a row vector whose components are the results of applying the function to each column of the matrix. Let us not forget that these functions are also valid for real variables.
max (Z) |
Returns a vector indicating the maximal components of each column of the matrix Z (for complex matrices the maximum is determined by the absolute values of the components) >> Z=[1-i 3i 5;-1+i 0 2i;6-5i 8i -7] Z = 1.0000 - 1.0000i 0 + 3.0000i 5.0000 -1.0000 + 1.0000i 0 0 + 2.0000i 6.0000 - 5.0000i 0 + 8.0000i -7.0000 >> Z=[1-i 3i 5-12i;-1+i 0 2i;6-5i 8i -7+6i] Z = 1.0000 - 1.0000i 0 + 3.0000i 5.0000 - 12.0000i -1.0000 + 1.0000i 0 0 + 2.0000i 6.0000 - 5.0000i 0 + 8.0000i -7.0000 + 6.0000i ans = 6.0000 - 5.0000i 0 + 8.0000i 5.0000 - 12.0000i >> Z1=[1 3 5;-1 0 2;6 8 -7] Z1 = 1 3 5 -1 0 2 6 8 -7 >> max(Z1) ans = 6 8 5 |
min (Z) |
Returns a vector indicating the minimal components of each column of the matrix Z (for complex matrices the minimum is determined by the absolute values of the components) >> min(Z) ans = 1.0000 - 1.0000i 0 0 + 2.0000i >> min(Z1) ans = -1 0 -7 |
mean (Z) |
Returns the vector of arithmetic means of the columns of the matrix Z >> mean(Z) ans = 2.0000 - 1.6667i 0 + 3.6667i -0.6667 - 1.3333i >> mean(Z1) ans = 2.0000 3.6667 0 |
median (Z) |
Returns the vector of medians of the columns of the matrix Z >> median(Z) ans = -1.0000 + 1.0000i 0 + 3.0000i -7.0000 + 6.0000i >> median(Z1) ans = 1 3 2 |
std (Z) |
Returns the vector of standard deviations of the columns of the matrix Z >> std(Z) ans = 4.7258 4.0415 11.2101 >> std(Z1) ans = 3.6056 4.0415 6.2450 |
sort (Z) |
Sorts in ascending order the components of the columns of Z. For complex matrices the ordering is by absolute value >> sort(Z) ans = 1.0000 - 1.0000i 0 0 + 2.0000i -1.0000 + 1.0000i 0 + 3.0000i -7.0000 + 6.0000i 6.0000 - 5.0000i 0 + 8.0000i 5.0000 - 12.0000i >> sort(Z1) ans = -1 0 -7 1 3 2 6 8 5 |
sum (Z) |
Returns the sum of the components of the columns of the matrix Z >> sum(Z) ans = 6.0000 - 5.0000i 0 + 11.0000i -2.0000 - 4.0000i >> sum(Z1) ans = 6 11 0 |
prod (Z) |
Returns the vector of products of the elements of the columns of the matrix Z >> prod(Z) ans = 1.0e+002 * 0.1000 + 0.1200i 0 -2.2800 + 0.7400i >> prod(Z1) ans = -6 0 -70 |
cumsum (Z) |
Gives the matrix of cumulative sums of the columns of Z >> cumsum(Z) ans = 1.0000 - 1.0000i 0 + 3.0000i 5.0000 - 12.0000i 0 0 + 3.0000i 5.0000 - 10.0000i 6.0000 - 5.0000i 0 + 11.0000i -2.0000 - 4.0000i >> cumsum(Z1) ans = 1 3 5 0 3 7 6 11 0 |
cumprod (V) |
Returns the cumulative products of the columns of the matrix Z >> cumprod(Z) ans = 1.0e+002 * 0.0100 - 0.0100i 0 + 0.0300i 0.0500 - 0.1200i 0 + 0.0200i 0 0.2400 + 0.1000i 0.1000 + 0.1200i 0 -2.2800 + 0.7400i >> cumprod(Z1) ans = 1 3 5 -1 0 10 -6 0 -70 |
diff (Z) |
Returns the matrix of first differences of the components of the columns of Z >> diff(Z) ans = -2.0000 + 2.0000i 0 - 3.0000i -5.0000 + 14.0000i 7.0000 - 6.0000i 0 + 8.0000i -7.0000 + 4.0000i >> diff(Z1) ans = -2 -3 -3 7 8 -9 |
gradient (Z) |
Returns the matrix of gradients of the columns of Z >> gradient(Z) ans = -1.0000 + 4.0000i 2.0000 - 5.5000i 5.0000 - 15.0000i 1.0000 - 1.0000i 0.5000 + 0.5000i 0 + 2.0000i -6.0000 + 13.0000i -6.5000 + 5.5000i -7.0000 - 2.0000i >> gradient(Z1) ans = 2.0000 2.0000 2.0000 1.0000 1.5000 2.0000 2.0000 –6.5000 -15.0000 |
del2 (V) |
Returns the discrete Laplacian of the columns of the matrix Z >> del2(Z) ans = 3.7500 - 6.7500i 1.5000 - 2.0000i 1.0000 - 7.2500i 2.0000 - 1.2500i -0.2500 + 3.5000i -0.7500 - 1.7500i 2.0000 - 5.7500i -0.2500 - 1.0000i -0.7500 - 6.2500i >> del2(Z1) ans = 2.2500 2.7500 -1.5000 2.5000 3.0000 -1.2500 -2.0000 -1.5000 -5.7500 |
fft (Z) |
Returns the discrete Fourier transform of the columns of the matrix Z >> fft(Z) ans = 6.0000 - 5.0000i 0 + 11.0000i -2.0000 - 4.0000i 3.6962 + 7.0622i -6.9282 - 1.0000i 5.0359 - 22.0622i -6.6962 - 5.0622i 6.9282 - 1.0000i 11.9641 - 9.9378i >> fft(Z1) ans = 6.0000 11.0000 0 -1.5000 + 6.0622i -1.0000 + 6.9282i 7.5000 - 7.7942i -1.5000 - 6.0622i -1.0000 - 6.9282i 7.5000 + 7.7942i |
fft2 (Z) |
Returns the two-dimensional discrete Fourier transform of the columns of the matrix Z >> fft2(Z) ans = 4.0000 + 2.0000i 19.9904 - 10.2321i -5.9904 - 6.7679i 1.8038 - 16.0000i 22.8827 + 28.9545i -13.5981 + 8.2321i 12.1962 - 16.0000i -8.4019 + 4.7679i -23.8827 - 3.9545i >> fft2(Z1) ans = 17.0000 0.5000 - 9.5263i 0.5000 + 9.5263i 5.0000 + 5.1962i 8.0000 + 13.8564i -17.5000 - 0.8660i 5.0000 - 5.1962i -17.5000 + 0.8660i 8.0000 - 13.8564i |
ifft (Z) |
Returns the inverse discrete Fourier transforms of the columns of the matrix Z >> ifft(Z) ans = 2.0000 - 1.6667i 0 + 3.6667i -0.6667 - 1.3333i -2.2321 - 1.6874i 2.3094 - 0.3333i 3.9880 - 3.3126i 1.2321 + 2.3541i -2.3094 - 0.3333i 1.6786 - 7.3541i >> ifft(Z1) ans = 2.0000 3.6667 0 -0.5000 - 2.0207i -0.3333 - 2.3094i 2.5000 + 2.5981i -0.5000 + 2.0207i -0.3333 + 2.3094i 2.5000 - 2.5981i |
ifft2 (Z) |
Returns the inverse two dimensional discrete Fourier transform of the columns of the matrix Z >> ifft2(Z) ans = 0.4444 + 0.2222i -0.6656 - 0.7520i 2.2212 - 1.1369i 1.3551 - 1.7778i -2.6536 - 0.4394i -0.9335 + 0.5298i 0.2004 - 1.7778i -1.5109 + 0.9147i 2.5425 + 3.2172i >> ifft2(Z1) ans = 1.8889 0.0556 + 1.0585i 0.0556 - 1.0585i 0.5556 - 0.5774i 0.8889 - 1.5396i -1.9444 + 0.0962i 0.5556 + 0.5774i -1.9444 - 0.0962i 0.8889 + 1.5396i |
General Functions with a Complex Matrix Argument
MATLAB incorporates a broad group of hyperbolic, trigonometric, exponential and logarithmic functions that support a complex matrix as an argument. Obviously, these functions also accept a complex vector as the argument, since a vector is a particular case of a matrix. All functions are applied element-wise to the matrix.
Trigonometric Functions of a Complex Matrix Variable
Below is a table of the trigonometric functions of a complex variable and their inverses that MATLAB incorporates, illustrated with examples. In the examples, the matrices Z and Z1 are those introduced in the first example concerning the sine function.
Trigonometric Functions |
---|
sin(z) sine function >> Z=[1-i, 1+i, 2i;3-6i, 2+4 i, -i;i,2i,3i] Z = 1.0000 - 1.0000i 1.0000 + 1.0000i 0 + 2.0000i 3.0000 - 6.0000i 2.0000 + 4.0000i 0 - 1.0000i 0 + 1.0000i 0 + 2.0000i 0 + 3.0000i >> Z1=[1,1,2;3,2,-1;1,2,3] Z1 = 1 1 2 3 2 -1 1 2 3 >> sin(Z) ans = 1.0e+002 * 0.0130 - 0.0063i 0.0130 + 0.0063i 0 + 0.0363i 0.2847 + 1.9969i 0.2483 - 0.1136i 0 - 0.0118i 0 + 0.0118i 0 + 0.0363i 0 + 0.1002i >> sin(Z1) ans = 0.8415 0.8415 0.9093 0.1411 0.9093 - 0.8415 0.8415 0.9093 0.1411 |
cos (z) cosine function >> cos(Z) ans = 1.0e+002 * 0.0083 + 0.0099i 0.0083 - 0.0099i 0.0376 -1.9970 + 0.2847i -0.1136 - 0.2481i 0.0154 0.0154 0.0376 0.1007 >> cos(Z1) ans = 0.5403 0.5403 -0.4161 -0.9900 -0.4161 0.5403 0.5403 -0.4161 -0.9900 |
tan (z) tangent function >> tan(Z) ans = 0.2718 - 1.0839i 0.2718 + 1.0839i 0 + 0.9640i -0.0000 - 1.0000i -0.0005 + 1.0004i 0 - 0.7616i 0 + 0.7616i 0 + 0.9640i 0 + 0.9951i >> tan(Z1) ans = 1.5574 1.5574 -2.1850 -0.1425 -2.1850 -1.5574 1.5574 -2.1850 -0.1425 |
csc (z) cosecant function >> csc(Z) ans = 0.6215 + 0.3039i 0.6215 - 0.3039i 0 - 0.2757i 0.0007 - 0.0049i 0.0333 + 0.0152i 0 + 0.8509i 0 - 0.8509i 0 - 0.2757i 0 - 0.0998i >> csc(Z1) ans = 1.1884 1.1884 1.0998 7.0862 1.0998 -1.1884 1.1884 1.0998 7.0862 |
sec (z) secant function >> sec(Z) ans = 0.4983 - 0.5911i 0.4983 + 0.5911i 0.2658 -0.0049 - 0.0007i -0.0153 + 0.0333i 0.6481 0.6481 0.2658 0.0993 >> sec(Z1) ans = 1.8508 1.8508 -2.4030 -1.0101 -2.4030 1.8508 1.8508 -2.4030 -1.0101 |
cot (z) cotangent function >> cot(Z) ans = 0.2176 + 0.8680i 0.2176 - 0.8680i 0 - 1.0373i -0.0000 + 1.0000i -0.0005 - 0.9996i 0 + 1.3130i 0 - 1.3130i 0 - 1.0373i 0 - 1.0050i >> cot(Z1) ans = 0.6421 0.6421 -0.4577 -7.0153 -0.4577 -0.6421 0.6421 -0.4577 -7.0153 |
Inverse Trigonometric Functions |
---|
asin (z) arcsine function >> asin(Z) 0.6662 - 1.0613i 0.6662 + 1.0613i 0 + 1.4436i 0.4592 - 2.5998i 0.4539 + 2.1986i 0 - 0.8814i 0 + 0.8814i 0 + 1.4436i 0 + 1.8184i >> asin(Z1) ans = 1.5708 1.5708 1.5708 - 1.3170i 1.5708 - 1.7627i 1.5708 - 1.3170i -1.5708 1.5708 1.5708 - 1.3170i 1.5708 - 1.7627i |
acos (z) arccosine function >> acos(Z) ans = 0.9046 + 1.0613i 0.9046 - 1.0613i 1.5708 - 1.4436i 1.1115 + 2.5998i 1.1169 - 2.1986i 1.5708 + 0.8814i 1.5708 - 0.8814i 1.5708 - 1.4436i 1.5708 - 1.8184i >> acos(Z1) ans = 0 0 0 + 1.3170i 0 + 1.7627i 0 + 1.3170i 3.1416 0 0 + 1.3170i 0 + 1.7627i |
atan(z) and atan2(z) arctangent function >> atan(Z) Warning: Singularity in ATAN. This warning will be removed in a future release. Consider using DBSTOP IF NANINF when debugging. Warning: Singularity in ATAN. This warning will be removed in a future release. Consider using DBSTOP IF NANINF when debugging. ans = 1.0172 - 0.4024i 1.0172 + 0.4024i -1.5708 + 0.5493i 1.5030 - 0.1335i 1.4670 + 0.2006i 0 - Infi 0 + Infi -1.5708 + 0.5493i -1.5708 + 0.3466i >> atan(Z1) ans = 0.7854 0.7854 1.1071 1.2490 1.1071 -0.7854 0.7854 1.1071 1.2490 |
acsc (z) arccosecant function >> acsc(Z) ans = 0.4523 + 0.5306i 0.4523 - 0.5306i 0 - 0.4812i 0.0661 + 0.1332i 0.0982 - 0.1996i 0 + 0.8814i 0 - 0.8814i 0 - 0.4812i 0 - 0.3275i >> acsc(Z1) ans = 1.5708 1.5708 0.5236 0.3398 0.5236 -1.5708 1.5708 0.5236 0.3398 |
asec (z) arcsecant function >> asec(Z) ans = 1.1185 - 0.5306i 1.1185 + 0.5306i 1.5708 + 0.4812i 1.5047 - 0.1332i 1.4726 + 0.1996i 1.5708 - 0.8814i 1.5708 + 0.8814i 1.5708 + 0.4812i 1.5708 + 0.3275i >> asec(Z1) ans = 0 0 1.0472 1.2310 1.0472 3.1416 0 1.0472 1.2310 |
acot (z) arccotangent function >> acot(Z) warning: singularity in atan. this warning will be removed in a future release. consider using dbstop if naninf when debugging. ans = 0.5536 + 0.4024i 0.5536 - 0.4024i 0 - 0.5493i 0.0678 + 0.1335i 0.1037 - 0.2006i 0 + infi 0 - infi 0 - 0.5493i 0 - 0.3466i >> acot(Z1) ans = 0.7854 0.7854 0.4636 0.3218 0.4636 -0.7854 0.7854 0.4636 0.3218 |
Hyperbolic Functions of a Complex Matrix Variable
Below is a table of the hyperbolic functions of a complex variable and their inverses that MATLAB incorporates, illustrated with examples. The matrices Z1 and Z are the same as for the previous examples.
Hyperbolic Functions |
---|
sinh (z) hyperbolic sine function >> sinh(Z) ans = 0.6350 - 1.2985i 0.6350 + 1.2985i 0 + 0.9093i 9.6189 + 2.8131i -2.3707 - 2.8472i 0 - 0.8415i 0 + 0.8415i 0 + 0.9093i 0 + 0.1411i >> sinh(Z1) ans = 1.1752 1.1752 3.6269 10.0179 3.6269 -1.1752 1.1752 3.6269 10.0179 |
cosh (z) hyperbolic cosine function >> cosh(Z) ans = 0.8337 - 0.9889i 0.8337 + 0.9889i -0.4161 9.6667 + 2.7991i -2.4591 - 2.7448i 0.5403 0.5403 -0.4161 -0.9900 >> cosh(Z1) ans = 1.5431 1.5431 3.7622 10.0677 3.7622 1.5431 1.5431 3.7622 10.0677 |
tanh (z) hyperbolic tangent function >> tanh(Z) ans = 1.0839 - 0.2718i 1.0839 + 0.2718i 0 - 2.1850i 0.9958 + 0.0026i 1.0047 + 0.0364i 0 - 1.5574i 0 + 1.5574i 0 - 2.1850i 0 - 0.1425i >> tanh(Z1) ans = 0.7616 0.7616 0.9640 0.9951 0.9640 -0.7616 0.7616 0.9640 0.9951 |
csch (z) hyperbolic cosecant function >> csch(Z) ans = 0.3039 + 0.6215i 0.3039 - 0.6215i 0 - 1.0998i 0.0958 - 0.0280i -0.1727 + 0.2074i 0 + 1.1884i 0 - 1.1884i 0 - 1.0998i 0 - 7.0862i >> csch(Z1) ans = 0.8509 0.8509 0.2757 0.0998 0.2757 -0.8509 0.8509 0.2757 0.0998 |
sech (z) hyperbolic secant function >> sech(Z) ans = 0.4983 + 0.5911i 0.4983 - 0.5911i -2.4030 0.0954 - 0.0276i -0.1811 + 0.2021i 1.8508 1.8508 -2.4030 -1.0101 >> sech(Z1) ans = 0.6481 0.6481 0.2658 0.0993 0.2658 0.6481 0.6481 0.2658 0.0993 |
coth (z) hyperbolic cotangent function >> coth(Z) ans = 0.8680 + 0.2176i 0.8680 - 0.2176i 0 + 0.4577i 1.0042 - 0.0027i 0.9940 - 0.0360i 0 + 0.6421i 0 - 0.6421i 0 + 0.4577i 0 + 7.0153i >> coth(Z1) ans = 1.3130 1.3130 1.0373 1.0050 1.0373 -1.3130 1.3130 1.0373 1.0050 |
Inverse Hyperbolic Functions |
asinh (z) arc hyperbolic sine function >> asinh(Z) 1.0613 - 0.6662i 1.0613 + 0.6662i 1.3170 + 1.5708i 2.5932 - 1.1027i 2.1836 + 1.0969i 0 - 1.5708i 0 + 1.5708i 1.3170 + 1.5708i 1.7627 + 1.5708i >> asinh(Z1) ans = 0.8814 0.8814 1.4436 1.8184 1.4436 -0.8814 0.8814 1.4436 1.8184 |
acosh (z) arc hyperbolic cosine function >> acosh(Z) ans = 1.0613 - 0.9046i 1.0613 + 0.9046i 1.4436 + 1.5708i 2.5998 - 1.1115i 2.1986 + 1.1169i 0.8814 - 1.5708i 0.8814 + 1.5708i 1.4436 + 1.5708i 1.8184 + 1.5708i >> acosh(Z1) ans = 0 0 1.3170 1.7627 1.3170 0 + 3.1416i 0 1.3170 1.7627 |
atanh (z) hyperbolic arctangent function >> atanh(Z) ans = 0.4024 - 1.0172i 0.4024 + 1.0172i 0 + 1.1071i 0.0656 - 1.4377i 0.0964 + 1.3715i 0 - 0.7854i 0 + 0.7854i 0 + 1.1071i 0 + 1.2490i >> atanh(Z1) ans = inf inf 0.5493 + 1.5708i 0.3466 + 1.5708i 0.5493 + 1.5708i -inf inf 0.5493 + 1.5708i 0.3466 + 1.5708i |
acsch (z) arc hyperbolic cosecant function >> acsch(Z) ans = 0.5306 + 0.4523i 0.5306 - 0.4523i 0 - 0.5236i 0.0672 + 0.1334i 0.1019 - 0.2003i 0 + 1.5708i 0 - 1.5708i 0 - 0.5236i 0 - 0.3398i >> acsch(Z1) ans = 0.8814 0.8814 0.4812 0.3275 0.4812 -0.8814 0.8814 0.4812 0.3275 |
asech (z) arc hyperbolic secant function >> asech(Z) ans = 0.5306 + 1.1185i 0.5306 - 1.1185i 0.4812 - 1.5708i 0.1332 + 1.5047i 0.1996 - 1.4726i 0.8814 + 1.5708i 0.8814 - 1.5708i 0.4812 - 1.5708i 0.3275 - 1.5708i >> asech(Z1) ans = 0 0 0 + 1.0472i 0 + 1.2310i 0 + 1.0472i 0 + 3.1416i 0 0 + 1.0472i 0 + 1.2310i |
acoth (z) arc hyperbolic cotangent function >> acoth(Z) ans = 0.4024 + 0.5536i 0.4024 - 0.5536i 0 - 0.4636i 0.0656 + 0.1331i 0.0964 - 0.1993i 0 + 0.7854i 0 - 0.7854i 0 - 0.4636i 0 - 0.3218i >> acoth(Z1) ans = Inf Inf 0.5493 0.3466 0.5493 -Inf Inf 0.5493 0.3466 |
Exponential and Logarithmic Functions of a Complex Matrix Variable
Below is a table of the exponential and logarithmic functions that MATLAB incorporates, illustrated with examples. The matrices Z1 and Z are the same as for the previous examples.
Function |
Meaning |
---|---|
exp (z) |
Base e exponential function (e ^ x) >> exp(Z) ans = 1.4687 - 2.2874i 1.4687 + 2.2874i -0.4161 + 0.9093i 19.2855 + 5.6122i -4.8298 - 5.5921i 0.5403 - 0.8415i 0.5403 + 0.8415i -0.4161 + 0.9093i -0.9900 + 0.1411i >> exp(Z1) ans = 2.7183 2.7183 7.3891 20.0855 7.3891 0.3679 2.7183 7.3891 20.0855 |
log (x) |
Base e logarithm >> log(Z) ans = 0.3466 - 0.7854i 0.3466 + 0.7854i 0.6931 + 1.5708i 1.9033 - 1.1071i 1.4979 + 1.1071i 0 - 1.5708i 0 + 1.5708i 0.6931 + 1.5708i 1.0986 + 1.5708i >> log(Z1) ans = 0 0 0.6931 1.0986 0.6931 0 + 3.1416i 0 0.6931 1.0986 |
log10 (x) |
Base 10 logarithm >> log10(Z) ans = 0.1505 - 0.3411i 0.1505 + 0.3411i 0.3010 + 0.6822i 0.8266 - 0.4808i 0.6505 + 0.4808i 0 - 0.6822i 0 + 0.6822i 0.3010 + 0.6822i 0.4771 + 0.6822i >> log10(Z1) ans = 0 0 0.3010 0.4771 0.3010 0 + 1.3644i 0 0.3010 0.4771 |
log2 (x) |
Base 2 logarithm >> log2(Z) ans = 0.5000 - 1.1331i 0.5000 + 1.1331i 1.0000 + 2.2662i 2.7459 - 1.5973i 2.1610 + 1.5973i 0 - 2.2662i 0 + 2.2662i 1.0000 + 2.2662i 1.5850 + 2.2662i >> log2(Z1) ans = 0 0 1.0000 1.5850 1.0000 0 + 4.5324i 0 1.0000 1.5850 |
pow2 (x) |
Base 2 power function >> pow2(Z) ans = 1.5385 - 1.2779i 1.5385 + 1.2779i 0.1835 + 0.9830i -4.2054 + 6.8055i -3.7307 + 1.4427i 0.7692 - 0.6390i 0.7692 + 0.6390i 0.1835 + 0.9830i -0.4870 + 0.8734i >> pow2(Z1) ans = 2.0000 2.0000 4.0000 8.0000 4.0000 0.5000 2.0000 4.0000 8.0000 |
sqrt (x) |
Square root function >> sqrt(Z) ans = 1.0987 - 0.4551i 1.0987 + 0.4551i 1.0000 + 1.0000i 2.2032 - 1.3617i 1.7989 + 1.1118i 0.7071 - 0.7071i 0.7071 + 0.7071i 1.0000 + 1.0000i 1.2247 + 1.2247i >> sqrt(Z1) ans = 1.0000 1.0000 1.4142 1.7321 1.4142 0 + 1.0000i 1.0000 1.4142 1.7321 |
Specific Functions of Complex Matrix Variables
MATLAB incorporates a group of functions of a complex variable specifically to work with moduli, arguments, and real and imaginary parts. Among these functions are the following:
Function |
Meaning |
---|---|
abs (Z) |
The modulus (absolute value) of Z >> abs(Z) ans = 1.4142 1.4142 2.0000 6.7082 4.4721 1.0000 1.0000 2.0000 3.0000 >> abs(Z1) ans = 1 1 2 3 -2 -1 1 2 3 |
angle (Z) |
The argument of Z >> angle(Z) ans = -0.7854 0.7854 1.5708 -1.1071 1.1071 -1.5708 1.5708 1.5708 1.5708 >> angle(Z1) ans = 0 0 0 0 0 3.1416 0 0 0 |
conj (Z) |
The complex conjugate of Z >> conj(Z) ans = 1.0000 + 1.0000i 1.0000 - 1.0000i 0 - 2.0000i 3.0000 + 6.0000i 2.0000 - 4.0000i 0 + 1.0000i 0 - 1.0000i 0 - 2.0000i 0 - 3.0000i >> conj(Z1) ans = 1 1 2 2 -3 -1 1 2 3 |
real (Z) |
The real part of Z >> real(Z) ans = 1 1 0 3 2 0 0 0 0 >> real(Z1) ans = 1 1 2 2 -3 -1 1 2 3 |
imag (Z) |
The imaginary part of Z >> imag(Z) ans = -1 1 2 -4 6 -1 1 2 3 >> imag(Z1) ans = 0 0 0 0 0 0 0 0 0 |
floor (Z) |
Applies the floor function to real(Z) and imag(Z) >> floor(12.357*Z) ans = 12.0000 - 13.0000i 12.0000 + 12.0000i 0 + 24.0000i 37.0000 - 75.0000i 24.0000 + 49.0000i 0 - 13.0000i 0 + 12.0000i 0 + 24.0000i 0 + 37.0000i >> floor(12.357*Z1) ans = 12 12 24 37 24 -13 12 -24 -37 |
ceil (Z) |
Applies the ceil function to real(Z) and imag(Z) >> ceil(12.357*Z) ans = 13.0000 - 12.0000i 13.0000 + 13.0000i 0 + 25.0000i 38.0000 - 74.0000i 25.0000 + 50.0000i 0 - 12.0000i 0 + 13.0000i 0 + 25.0000i 0 + 38.0000i >> ceil(12.357*Z1) ans = 13 13 25 38 25 -12 13 25 38 |
round (Z) |
Applies the function round to real(Z) and imag(Z) >> round(12.357*Z) ans = 12.0000 - 12.0000i 12.0000 + 12.0000i 0 + 25.0000i 37.0000 - 74.0000i 25.0000 + 49.0000i 0 - 12.0000i 0 + 12.0000i 0 + 25.0000i 0 + 37.0000i >> round(12.357*Z1) ans = 12 -12 -25 37 25 -12 12 25 37 |
fix (Z) |
Applies the function fix to real(Z) and imag(Z) >> fix(12.357*Z) ans = 12.0000 - 12.0000i 12.0000 + 12.0000i 0 + 24.0000i 37.0000 - 74.0000i 24.0000 + 49.0000i 0 - 12.0000i 0 + 12.0000i 0 + 24.0000i 0 + 37.0000i >> fix(12.357*Z1) ans = 12 12 24 24 -37 12 12 -24 -37 |
Operations with Real and Complex Matrix Variables
MATLAB includes the usual operations of sum, difference, product, power, exponentiation and inversion for complex matrix variables. Obviously all these operations will also be valid for real matrix variables. The following table summarizes the operations that are valid both for numerical real and complex matrix variables and algebraic matrix variables.
A + B |
Matrix sum >> A=[1+i, 1-i, 2i; -i, -3i, 6-5i;2+3i, 2-3i, i] A = 1.0000 + 1.0000i 1.0000 - 1.0000i 0 + 2.0000i 0 - 1.0000i 0 - 3.0000i 6.0000 - 5.0000i 2.0000 + 3.0000i 2.0000 - 3.0000i 0 + 1.0000i >> B=[i, -i, 2i; 1-i, 7-3i, 2-5i;8-6i, 5-i, 1+i] B = 0 + 1.0000i 0 - 1.0000i 0 + 2.0000i 1.0000 - 1.0000i 7.0000 - 3.0000i 2.0000 - 5.0000i 8.0000 - 6.0000i 5.0000 - 1.0000i 1.0000 + 1.0000i >> A1=[1 6 2;3 5 0; 2 4 -1] A1 = 1 6 2 3 5 0 2 4 -1 >> B1=[-3 -6 1;-3 -5 2; 12 14 -10] B1 = -3 -6 1 -3 -5 2 12 14 -10 >> A+B ans = 1.0000 + 2.0000i 1.0000 - 2.0000i 0 + 4.0000i 1.0000 - 2.0000i 7.0000 - 6.0000i 8.0000 - 10.0000i 10.0000 - 3.0000i 7.0000 - 4.0000i 1.0000 + 2.0000i >> A1+B1 ans = -2 0 3 0 0 2 14 18 -11 |
A - B |
Difference of matrices >> A-B ans = 1.0000 1.0000 0 -1.0000 -7.0000 4.0000 -6.0000 + 9.0000i -3.0000 - 2.0000i -1.0000 >> A1-B1 ans = 4 12 1 6 10 -2 -10 -10 9 |
A * B |
Product of matrices >> A * B ans = 11.0000 + 15.0000i 7.0000 - 1.0000i -7.0000 - 3.0000i 16.0000 - 79.0000i 15.0000 - 52.0000i -2.0000 - 5.0000i 2.0000 + 5.0000i 9.0000 - 24.0000i -18.0000 - 11.0000i >> A1*B1 ans = 3 -8 -7 -24 -43 13 -30 -46 20 |
A^n |
nth power of the matrix A >> A^3 ans = 1.0e+002 * 0.1000 - 0.3400i -0.3200 - 0.1200i 0.3400 - 0.3600i 0.0900 - 0.0300i -1.0700 + 0.2100i -2.2500 - 0.6700i 0.3700 - 0.7900i -1.0300 - 0.0300i -0.0700 - 0.3700i >> A1^3 ans = 155 358 46 159 347 30 106 232 19 |
P^A |
Scalar p raised to the power of the matrix A >> 3^A ans = 0.0159 - 1.2801i -0.5297 + 2.8779i -1.9855 + 3.0796i -10.3372 + 0.4829i 17.0229 + 12.9445i 14.7327 + 20.1633i -5.0438 + 0.2388i 7.0696 + 6.9611i 5.7189 + 9.5696i >> 3^A1 ans = 1.0e+003 * 2.2230 4.9342 0.4889 2.1519 4.7769 0.4728 1.4346 3.1844 0.3156 |
A ' |
Transpose of the matrix A >> A' ans = 1.0000 - 1.0000i 0 + 1.0000i 2.0000 - 3.0000i 1.0000 + 1.0000i 0 + 3.0000i 2.0000 + 3.0000i 0 - 2.0000i 6.0000 + 5.0000i 0 - 1.0000i >> A1' ans = 1 3 2 6 5 4 2 0 -1 |
A^-1 |
Inverse of the matrix A >> A^-1 ans = -2.5000 + 2.0000i -0.0500 + 0.6500i 0.8500 - 1.0500i 0.5000 + 3.0000i 0.5500 + 0.3500i -0.3500 - 0.9500i -1.0000 - 1.0000i -0.2000 + 0.1000i 0.4000 + 0.3000i >> A1^-1 ans = -0.2941 0.8235 -0.5882 0.1765 -0.2941 0.3529 0.1176 0.4706 -0.7647 >> A*A^-1 ans = 1.0000 0.0000 - 0.0000i -0.0000 + 0.0000i -0.0000 - 0.0000i 1.0000 + 0.0000i 0.0000 0.0000 + 0.0000i 0.0000 1.0000 + 0.0000i >> A1*A1^-1 ans = 1.0000 -0.0000 0 -0.0000 1.0000 0 -0.0000 -0.0000 1.0000 |
AB |
If A is square AB = (A-1) * B and if A is not square, AB is the solution in the sense of least-squares of the system AX = B >> AB ans = -0.9000 - 15.3000i 6.8000 + 1.1000i 1.0500 - 3.6500i -10.6000 - 5.2000i 5.2000 - 4.1000i -2.5500 - 2.3500i 5.9000 - 0.7000i 0.2000 + 3.4000i 2.2000 - 0.1000i >> A1B1 ans = -8.6471 -10.5882 7.2353 4.5882 5.3529 -3.9412 -10.9412 -13.7647 8.7059 |
B/A |
Equivalent to AB >> B/A ans = 3.0000 - 5.0000i -0.5000 - 1.0000i -0.5000 + 2.0000i 5.0000 + 27.0000i 5.6000 + 2.7000i -3.2000 - 8.9000i -2.5000 + 43.5000i 6.3000 + 6.6000i -2.1000 - 17.2000i >> A'B' ans = 3.0000 + 5.0000i 5.0000 - 27.0000i -2.5000 - 43.5000i -0.5000 + 1.0000i 5.6000 - 2.7000i 6.3000 - 6.6000i -0.5000 - 2.0000i -3.2000 + 8.9000i -2.1000 + 17.2000i >> B1/A1 ans = -0.0588 -0.2353 -1.1176 0.2353 -0.0588 -1.5294 -2.2353 1.0588 5.5294 >> A1'B1' ans = -0.0588 0.2353 -2.2353 -0.2353 -0.0588 1.0588 -1.1176 -1.5294 5.5294 |
EXERCISE 3-1
Given the complex numbers z1= 1-i, and z2= 5i, calculate: z13 z12/z24, z11/2, z23/2, ln(z1+z2), sin(z1-z2), and tanh(z1/z2).
>> Z1=1-i
Z1 =
1.0000 - 1.0000i
>> Z2=5i
Z2 =
0 + 5.0000i
>> Z1^3
ans =
-2.0000 - 2.0000i
>> Z1^2/Z2^4
ans =
0 - 0.0032i
>> sqrt(Z1)
ans =
1.0987 - 0.4551i
>> sqrt(Z2^3)
ans =
7.9057 - 7.9057i
>> log(Z1+Z2)
ans =
1.4166 + 1.3258i
>> sin(Z1-Z2)
ans =
1.6974e+002 -1.0899e+002i
>> tanh(Z1/Z2)
ans =
-0.2052 - 0.1945i
EXERCISE 3-2
Perform the following operations with complex numbers:
>> (i^8-i^(-8))/(3-4*i) + 1
ans =
1
>> i^(sin(1+i))
ans =
-0.16665202215166 + 0.32904139450307i
>> (2+log(i))^(1/i)
ans =
1.15809185259777 - 1.56388053989023i
>> (1+i)^i
ans =
0.42882900629437 + 0.15487175246425i
>> i^(log(1+i))
ans =
0.24911518828716 + 0.15081974484717i
>> (1+sqrt(3)*i)^(1-i)
ans =
5.34581479196611 + 1.97594883452873i
EXERCISE 3-3
Find the real part, imaginary part, modulus and argument of each of the following:
>> Z1=i^3*i; Z2=(1+sqrt(3)*i)^(1-i); Z3=(i^i)^i;Z4=i^i;
>> format short
>> real([Z1 Z2 Z3 Z4])
ans =
1.0000 5.3458 0.0000 0.2079
>> imag([Z1 Z2 Z3 Z4])
ans =
0 1.9759 -1.0000 0
>> abs([Z1 Z2 Z3 Z4])
ans =
1.0000 5.6993 1.0000 0.2079
>> angle([Z1 Z2 Z3 Z4])
ans =
0 0.3541 -1.5708 0
EXERCISE 3-4
Consider the matrix M defined as the product of the imaginary unit i with the square matrix of order 3 whose elements are, row by row, the first nine positive integers.
Find the square of M, its square root and its exponential to base 2 and -2.
Find the element-wise Naperian logarithm of M and its element-wise base e exponential.
Find log(M ) and eM.
>> M=i*[1 2 3;4 5 6;7 8 9]
M =
0 + 1.0000i 0 + 2.0000i 0 + 3.0000i
0 + 4.0000i 0 + 5.0000i 0 + 6.0000i
0 + 7.0000i 0 + 8.0000i 0 + 9.0000i
>> C=M^2
C =
-30 -36 -42
-66 -81 -96
-102 -126 -150
>> D=M^(1/2)
D =
0.8570 - 0.2210i 0.5370 + 0.2445i 0.2169 + 0.7101i
0.7797 + 0.6607i 0.9011 + 0.8688i 1.0224 + 1.0769i
0.7024 + 1.5424i 1.2651 + 1.4930i 1.8279 + 1.4437i
>> 2^M
ans =
0.7020 - 0.6146i -0.1693 - 0.2723i -0.0407 + 0.0699i
-0.2320 - 0.3055i 0.7366 - 0.3220i -0.2947 - 0.3386i
-0.1661 + 0.0036i -0.3574 - 0.3717i 0.4513 - 0.7471i
>> (-2)^M
ans =
17.3946 -16.8443i 4.3404 - 4.5696i -7.7139 + 7.7050i
1.5685 - 1.8595i 1.1826 - 0.5045i -1.2033 + 0.8506i
-13.2575 + 13.1252i -3.9751 + 3.5607i 6.3073 - 6.0038i
>> log(M)
ans =
0 + 1.5708i 0.6931 + 1.5708i 1.0986 + 1.5708i
1.3863 + 1.5708i 1.6094 + 1.5708i 1.7918 + 1.5708i
1.9459 + 1.5708i 2.0794 + 1.5708i 2.1972 + 1.5708i
>> exp(M)
ans =
0.5403 + 0.8415i -0.4161 + 0.9093i -0.9900 + 0.1411i
-0.6536 - 0.7568i 0.2837 - 0.9589i 0.9602 - 0.2794i
0.7539 + 0.6570i -0.1455 + 0.9894i -0.9111 + 0.4121i
>> logm(M)
ans =
-5.4033 - 0.8472i 11.9931 - 0.3109i -5.3770 + 0.8846i
12.3029 + 0.0537i -22.3087 + 0.8953i 12.6127 + 0.4183i
-4.7574 + 1.6138i 12.9225 + 0.7828i -4.1641 + 0.6112i
>> expm(M)
ans =
0.3802 - 0.6928i -0.3738 - 0.2306i -0.1278 + 0.2316i
-0.5312 - 0.1724i 0.3901 - 0.1434i -0.6886 - 0.1143i
-0.4426 + 0.3479i -0.8460 - 0.0561i -0.2493 - 0.4602i
EXERCISE 3-5
Consider the vector sum V of the complex vector Z = (i,-i, i) and the real vector R = (0,1,1). Find the mean, median, standard deviation, variance, sum, product, maximum and minimum of the elements of V, as well as its gradient, its discrete Fourier transform and its inverse.
>> Z=[i,-i,i]
Z =
0 + 1.0000i 0 - 1.0000i 0 + 1.0000i
>> R=[0,1,1]
R =
0 1 1
>> V=Z+R
V =
0 + 1.0000i 1.0000 - 1.0000i 1.0000 + 1.0000i
>> [mean(V),median(V),std(V),var(V),sum(V),prod(V),max(V),min(V)]'
ans =
0.6667 - 0.3333i
1.0000 + 1.0000i
1.2910
1.6667
2.0000 - 1.0000i
0 - 2.0000i
1.0000 + 1.0000i
0 - 1.0000i
>> gradient(V)
ans =
1.0000 - 2.0000i 0.5000 0 + 2.0000i
>> fft(V)
ans =
2.0000 + 1.0000i -2.7321 + 1.0000i 0.7321 + 1.0000i
>> ifft(V)
ans =
0.6667 + 0.3333i 0.2440 + 0.3333i -0.9107 + 0.3333i
EXERCISE 3-6
First calculate A = A1 + A2, B = B1 - B2 and C = C1 + C2.
Then calculate AB - BA, A2 + B2 + C2, ABC, sqrt(A) + sqrt B) - sqrt(C), (eB+ eC), their transposes and their inverses.
Finally, check that the product of each of the matrices A, B and C with their inverses gives the identity matrix.
>> A1=eye(3)
A1 =
1 0 0
0 1 0
0 0 1
>> A2=[0 1 0;0 0 1;0 0 0]
A2 =
0 1 0
0 0 1
0 0 0
>> A= A1+A2
A =
1 1 0
0 1 1
0 0 1
>> B1=[0 1 2;0 -1 3;0 0 0]
B1 =
0 1 2
0 -1 3
0 0 0
>> B2=[-i i -i;0 0 i;0 0 i]
B2 =
0 - 1.0000i 0 + 1.0000i 0 - 1.0000i
0 0 0 + 1.0000i
0 0 0 + 1.0000i
>> B=B1-B2
B =
0 + 1.0000i 1.0000 - 1.0000i 2.0000 + 1.0000i
0 -1.0000 3.0000 - 1.0000i
0 0 0 - 1.0000i
>> C1=[1,-1,0;-1,sqrt(2)*i,-sqrt(2)*i;0,0,-1]
C1 =
1.0000 -1.0000 0
-1.0000 0 + 1.4142i 0 - 1.4142i
0 0 -1.0000
>> C2=[0 2 1;1 0 0;1 -1 0]
C2 =
0 2 1
1 0 0
1 -1 0
>> C=C1+C2
C =
1.0000 1.0000 1.0000
0 0 + 1.4142i 0 - 1.4142i
1.0000 -1.0000 -1.0000
>> M1=A*B-B*A
M1 =
0 -1.0000 - 1.0000i 2.0000
0 0 1.0000 - 1.0000i
0 0 0
>> M2=A^2+B^2+C^2
M2 =
2.0000 2.0000 + 3.4142i 3.0000 - 5.4142i
0 - 1.4142i -0.0000 + 1.4142i 0.0000 - 0.5858i
0 2.0000 - 1.4142i 2.0000 + 1.4142i
>> M3=A*B*C
M3 =
5.0000 + 1.0000i -3.5858 + 1.0000i -6.4142 + 1.0000i
3.0000 - 2.0000i -3.0000 + 0.5858i -3.0000 + 3.4142i
0 - 1.0000i 0 + 1.0000i 0 + 1.0000i
>> M4=sqrtm(A)+sqrtm(B)-sqrtm(C)
M4 =
0.6356 + 0.8361i -0.3250 - 0.8204i 3.0734 + 1.2896i
0.1582 - 0.1521i 0.0896 + 0.5702i 3.3029 - 1.8025i
-0.3740 - 0.2654i 0.7472 + 0.3370i 1.2255 + 0.1048i
>> M5=expm(A)*(expm(B)+expm(C))
M5 =
14.1906 - 0.0822i 5.4400 + 4.2724i 17.9169 - 9.5842i
4.5854 - 1.4972i 0.6830 + 2.1575i 8.5597 - 7.6573i
3.5528 + 0.3560i 0.1008 - 0.7488i 3.2433 - 1.8406i
>> inv(A)
ans =
1 -1 1
0 1 -1
0 0 1
>> inv(B)
ans =
0 - 1.0000i -1.0000 - 1.0000i -4.0000 + 3.0000i
0 -1.0000 1.0000 + 3.0000i
0 0 0 + 1.0000i
>> inv(C)
ans =
0.5000 0 0.5000
0.2500 0 - 0.3536i -0.2500
0.2500 0 + 0.3536i -0.2500
>> [A*inv(A) B*inv(B) C*inv(C)]
ans =
1 0 0 1 0 0 1 0 0
0 1 0 0 1 0 0 1 0
0 0 1 0 0 1 0 0 1
>> A'
ans =
1 0 0
1 1 0
0 1 1
>> B'
ans =
0 - 1.0000i 0 0
1.0000 + 1.0000i -1.0000 0
2.0000 - 1.0000i 3.0000 + 1.0000i 0 + 1.0000i
>> C'
ans =
1.0000 0 1.0000
1.0000 0 - 1.4142i -1.0000
1.0000 0 + 1.4142i -1.0000
EXERCISE 3-7
Given the matrices
apply the sine function, the base e exponential and logarithm, the square root, the modulus, the argument and the rounding functions.
Calculate eB and ln(A).
>> A=[1 2 3; 4 5 6; 7 8 9]
A =
1 2 3
4 5 6
7 8 9
>> sin(A)
ans =
0.8415 0.9093 0.1411
-0.7568 -0.9589 -0.2794
0.6570 0.9894 0.4121
>> B=[1+i 2+i;3+i,4+i]
B =
1.0000 + 1.0000i 2.0000 + 1.0000i
3.0000 + 1.0000i 4.0000 + 1.0000i
>> sin(B)
ans =
1.2985 + 0.6350i 1.4031 - 0.4891i
0.2178 - 1.1634i -1.1678 - 0.7682i
>> exp(A)
ans =
1.0e+003 *
0.0027 0.0074 0.0201
0.0546 0.1484 0.4034
1.0966 2.9810 8.1031
>> exp(B)
ans =
1.4687 + 2.2874i 3.9923 + 6.2177i
10.8523 + 16.9014i 29.4995 + 45.9428i
>> log(B)
ans =
0.3466 + 0.7854i 0.8047 + 0.4636i
1.1513 + 0.3218i 1.4166 + 0.2450i
>> sqrt(B)
ans =
1.0987 + 0.4551i 1.4553 + 0.3436i
1.7553 + 0.2848i 2.0153 + 0.2481i
>> abs(B)
ans =
1.4142 2.2361
3.1623 4.1231
>> imag(B)
ans =
1 1
1 1
>> fix(sin(B))
ans =
1.0000 1.0000
0 - 1.0000i - 1.0000
>> ceil(log(A))
ans =
0 1 2
2 2 2
2 3 3
>> sign(B)
ans =
0.7071 + 0.7071i 0.8944 + 0.4472i
0.9487 + 0.3162i 0.9701 + 0.2425i
The exponential, square root and logarithm functions used above apply element-wise to the matrix, and have nothing to do with the matrix exponential and logarithmic functions that are used below.
>> expm(B)
ans =
1.0e+002 *
-0.3071 + 0.4625i -0.3583 + 0.6939i
-0.3629 + 1.0431i -0.3207 + 1.5102i
>> logm(A)
ans =
-5.6588 + 2.7896i 12.5041 - 0.4325i -5.6325 - 0.5129i
12.8139 - 0.7970i -23.3307 + 2.1623i 13.1237 - 1.1616i
-5.0129 - 1.2421i 13.4334 - 1.5262i -4.4196 + 1.3313i
EXERCISE 3-8
Solve the following equation in the complex field:
sin(z) = 2
>> vpa(solve('sin(z) = 2'))
ans =
1.316957896924816708625046347308 * i + 1.5707963267948966192313216916398
1.5707963267948966192313216916398 - 1.316957896924816708625046347308 * i
EXERCISE 3-9
Solve the following equations:
a. 1+x+x2+x3+x4+x5 = 0
b. x2 +(6-i)x+8-4i = 0
c. tan(Z) = 3i/5
>> solve('1+x+x^2+x^3+x^4+x^5 = 0')
ans =
-1
-1/2 - (3-^(1/2) * i) / 2
1/2 - (3-^(1/2) * i) / 2
-1/2 + (3 ^(1/2) * i) / 2
1/2 + (3 ^(1/2) * i) / 2
>> solve ('x ^ 2 +(6-i) * x + 8-4 * i = 0')
ans =
-4
i 2
>> vpa (solve ('tan (Z) = 3 * i/5 '))
ans =
0.69314718055994530941723212145818 * i
EXERCISE 3-10
Find the following:
a. The fourth roots of -1 and 1;
b. The fifth roots of 2 + 2i and -1 + i√3;
c. The real part of tan(iLn((a+ib)/(a-ib)));
d. The imaginary part of Z = (2 + i)cos(4-i).
>> solve('x^4+1=0')
ans =
2^(1/2) * (-i/2 - 1/2)
2^(1/2) * (i/2 - 1/2)
2^(1/2) * (1/2 - i/2)
2^(1/2) * (i/2 + 1/2)
>> pretty(solve('x^4+1=0'))
+- -+
| 1/2 / i 1 |
| 2 | - - - - | |
| 2 2 / |
| |
| 1/2 / i 1 |
| 2 | - - - | |
| 2 2 / |
| |
| 1/2 / 1 i |
| 2 | - - - | |
| 2 2 / |
| |
| 1/2 / i 1 |
| 2 | - + - | |
| 2 2 / |
+- -+
>> solve('x^4-1=0')
ans =
-1
1
-i
i
>> vpa(solve('x^5-2-2*i=0'))
ans =
0.19259341768888084906125263406469 * i + 1.2159869826496146992458377919696
-0.87055056329612413913627001747975 * i - 0.87055056329612413913627001747975
0.55892786746600970394985946846702 * i - 1.0969577045083811131206798770216
0.55892786746600970394985946846702 - 1.0969577045083811131206798770216 * i
1.2159869826496146992458377919696 * i + 0.19259341768888084906125263406469
>> vpa(solve('x^5+1-sqrt(3)*i=0'))
ans =
0.46721771281818786757419290603946 * i + 1.0493881644090691705137652947201
1.1424056652180689506550734259384 * i - 0.1200716738059215411240904754285
0.76862922680258900220179378744147 - 0.85364923855044142809268986292246 * i
-0.99480195671282768870147766609475 * i - 0.57434917749851750339931347338896
0.23882781722701229856490119703938 * i - 1.1235965399072191281921551333441
>> simplify(vpa(real(tan(i * log((a+i*b)/(a-i*b))))))
ans =
-0.5 * tanh(conj(log((a^2 + 2.0*a*b*i-1.0*b^2)/(a^2 + b^2))) * i + (0.5 * ((a^2 + 2.0*a*b*i-1.0*b^2)^2 /(a^2 + b^2)^2 - 1) * i) / ((a^2 + 2.0*a*b*i-1.0*b^2)^2 /(a^2 + b^2)^2 + 1))
>> simplify(vpa(imag((2+i)^cos(4-i))))
ans =
-0.62107490808037524310236676683417
3.145.35.194