Numerical Tools in Matlab

GUIDE: Mathematics of the Discrete Fourier Transform (DFT). Numerical Tools in Matlab

It appears that you are using AdBlocking software. The cost of running this website is covered by advertisements. If you like it please feel free to a small amount of money to secure the future of this website.

<< Previous page  TOC  INDEX  Next page >>

Numerical Tools in Matlab

In Matlab, root-finding is always numerical:2.3

>> % polynomial = array of coefficients in Matlab
>> p = [1 0 0 0 5 7]; %  p(x) = x^5 + 5*x + 7
>> format long;       %  print double-precision
>> roots(p)           %  print out the roots of p(x)

ans = 1.30051917307206 + 1.10944723819596i 1.30051917307206 - 1.10944723819596i -0.75504792501755 + 1.27501061923774i -0.75504792501755 - 1.27501061923774i -1.09094249610903

Matlab has the following primitives for complex numbers:

>> help j

J Imaginary unit. The variables i and j both initially have the value sqrt(-1) for use in forming complex quantities. For example, the expressions 3+2i, 3+2*i, 3+2i, 3+2*j and 3+2*sqrt(-1). all have the same value. However, both i and j may be assigned other values, often in FOR loops and as subscripts.

    See also I.
    Built-in function.
    Copyright (c) 1984-92 by The MathWorks, Inc.

>> sqrt(-1)

ans = 0 + 1.0000i

>> help real

REAL Complex real part. REAL(X) is the real part of X.

    See also IMAG, CONJ, ANGLE, ABS.

>> help imag

IMAG Complex imaginary part. IMAG(X) is the imaginary part of X. See I or J to enter complex numbers.

    See also REAL, CONJ, ANGLE, ABS.

>> help conj

CONJ Complex conjugate. CONJ(X) is the complex conjugate of X.

>> help abs

ABS Absolute value and string to numeric conversion. ABS(X) is the absolute value of the elements of X. When X is complex, ABS(X) is the complex modulus (magnitude) of the elements of X.

    See also ANGLE, UNWRAP.

    ABS(S), where S is a MATLAB string variable, returns the
    numeric values of the ASCII characters in the string.
    It does not change the internal representation, only the
    way it prints.
    See also SETSTR.

>> help angle

ANGLE Phase angle. ANGLE(H) returns the phase angles, in radians, of a matrix with complex elements.

    See also ABS, UNWRAP.</pre></p><p>Note how helpful the ''See also'' information is in Matlab.</p><p>Let's run through a few elementary manipulations of complex

numbers in Matlab:

>> x = 1; % Every symbol must have a value in Matlab
>> y = 2;
>> z = x + j * y

z = 1.0000 + 2.0000i

>> 1/z

ans = 0.2000 - 0.4000i

>> z^2

ans = -3.0000 + 4.0000i

>> conj(z)

ans = 1.0000 - 2.0000i

>> z*conj(z)

ans = 5

>> abs(z)^2

ans = 5.0000

>> norm(z)^2

ans = 5.0000

>> angle(z)

ans = 1.1071

Now let’s do polar form:

>> r = abs(z)

r = 2.2361

>> theta = angle(z)

theta = 1.1071

>> r * exp(j * theta)

ans = 1.0000 + 2.0000i

>> z

z = 1.0000 + 2.0000i

>> z/abs(z)

ans = 0.4472 + 0.8944i

>> exp(j*theta)

ans = 0.4472 + 0.8944i

>> z/conj(z)

ans = -0.6000 + 0.8000i

>> exp(2*j*theta)

ans = -0.6000 + 0.8000i

>> imag(log(z/abs(z)))

ans = 1.1071

>> theta

theta = 1.1071

>>

Some manipulations involving two complex numbers:

>> x1 = 1;
>> x2 = 2;
>> y1 = 3;
>> y2 = 4;
>> z1 = x1 + j * y1;
>> z2 = x2 + j * y2;
>> z1

z1 = 1.0000 + 3.0000i

>> z2

z2 = 2.0000 + 4.0000i

>> z1*z2

ans = -10.0000 +10.0000i

>> z1/z2

ans = 0.7000 + 0.1000i

Another thing to note about Matlab is that the transpose operator ‘ (for vectors and matrices) conjugates as well as transposes. Use .’ to transpose without conjugation:

>>x = [1:4]*j

x = 0 + 1.0000i 0 + 2.0000i 0 + 3.0000i 0 + 4.0000i

>> x’

ans = 0 - 1.0000i 0 - 2.0000i 0 - 3.0000i 0 - 4.0000i

>> x.’

ans = 0 + 1.0000i 0 + 2.0000i 0 + 3.0000i 0 + 4.0000i

>>

<< Previous page  TOC  INDEX  Next page >>

 

© 1998-2017 – Nicola Asuni - Tecnick.com - All rights reserved.
about - disclaimer - privacy