Contenido principal

Representar números complejos

Este ejemplo muestra cómo representar números complejos en MATLAB®. Un número complejo z es un número que se puede escribir con la forma

z=x+y i,

donde x y y son números reales y i es la unidad imaginaria, que se define como i2=-1. El número x es la parte real del número complejo, que se indica mediante x=Re(z) y el número y es la parte imaginaria del número complejo, que se indica mediante y=Im(z). Puede representar un número complejo como un par de coordenadas (x,y) en el plano complejo, también denominado diagrama de Argand. Este diagrama utiliza las coordenadas cartesianas para representar la parte real en el eje x y la parte imaginaria en el eje y.

También puede representar un número complejo usando una gráfica polar. El número complejo se escribe con la forma

z=r eiθ=r(cos θ+i sin θ),

donde r es el valor o magnitud absolutos del número complejo y θ es el ángulo de fase del número complejo. En esta representación, puede representar un número complejo como un punto en las coordenadas polares con radio r (la distancia desde el origen) y ángulo polar θ (el ángulo en sentido contrario a las agujas del reloj entre el eje real positivo y la línea que conecta el punto con el origen).

Representar un arreglo de números complejos

Cree un vector que contenga los números complejos 3 + 4i, -4 - 3i, 1 - 2i y -1 - 1i.

z = [3 + 4i; -4 - 3i; 1 - 2i; -1 - 1i]
z = 4×1 complex

   3.0000 + 4.0000i
  -4.0000 - 3.0000i
   1.0000 - 2.0000i
  -1.0000 - 1.0000i

Represente la parte imaginaria frente a la parte real del vector complejo z usando plot. Utilice la función real y la función imag para devolver las partes real e imaginaria del vector complejo, respectivamente.

plot(real(z),imag(z),"o")
axis equal
grid on
xlabel("Re(z)")
ylabel("Im(z)")

Figure contains an axes object. The axes object with xlabel Re(z), ylabel Im(z) contains a line object which displays its values using only markers.

También puede utilizar plot(z,LineSpec) en lugar de plot(real(z),imag(z),LineSpec) para representar un arreglo de números complejos. Esta función representa automáticamente la parte real en el eje x y la parte imaginaria en el eje y.

Representar raíces complejas de unidad en coordenadas cartesianas

Las raíces n-ésimas son números complejos que satisfacen la ecuación polinómica

zn=1,

donde n es un entero positivo.

Las raíces n-ésimas de unidad son

exp(2kπin)=cos2kπn+i sin2kπn para k=0,1,,n-1.

Para encontrar las raíces complejas de unidad, puede resolver la ecuación polinómica usando roots. La función roots resuelve las ecuaciones polinómicas con el formato p1xn++pnx+pn+1=0. Por ejemplo, encuentre la quinta raíz de unidad de z5=1 o z5-1=0.

p = [1 0 0 0 0 -1];
z = roots(p)
z = 5×1 complex

  -0.8090 + 0.5878i
  -0.8090 - 0.5878i
   0.3090 + 0.9511i
   0.3090 - 0.9511i
   1.0000 + 0.0000i

Represente las raíces complejas de unidad en las coordenadas cartesianas.

plot(z,"o")
axis equal
grid on
xlabel("Re(z)")
ylabel("Im(z)")

Figure contains an axes object. The axes object with xlabel Re(z), ylabel Im(z) contains a line object which displays its values using only markers.

Representar números complejos en coordenadas polares

Represente la quinta raíz de unidad de las coordenadas polares usando polarplot. Utilice la función angle para devolver los ángulos de fase de las raíces complejas y utilice la función abs para devolver los valores o radios absolutos de las raíces complejas.

polarplot(angle(z),abs(z),"o")

Figure contains an axes object with type polaraxes. The polaraxes contains a line object which displays its values using only markers.

También puede utilizar polarplot(z,LineSpec) en lugar de polarplot(angle(z),abs(z),LineSpec) para representar un arreglo de números complejos en las coordenadas polares. Esta función representa automáticamente los radios y los ángulos de fase de los números complejos.

Representar una curva paramétrica en un plano complejo

Defina una curva paramétrica que tenga la forma

z=f(t)=texp(it)

con el parámetro t en el intervalo [0,4π].

Cree un vector t de 200 puntos equidistantes dentro de este intervalo para parametrizar t. Defina los puntos incluidos en la curva compleja como un vector complejo z.

t = linspace(0,4*pi,200);
z = t.*exp(1i*t);

Represente la curva compleja en las coordenadas cartesianas.

plot(z,"-")
axis equal
grid on
xlabel("Re(z)")
ylabel("Im(z)")

Figure contains an axes object. The axes object with xlabel Re(z), ylabel Im(z) contains an object of type line.

Represente la curva compleja en las coordenadas polares.

polarplot(z,"-")

Figure contains an axes object with type polaraxes. The polaraxes object contains an object of type line.

Representar valores propios de un matriz cuadrada

Una matriz cuadrada real de n por n tiene valores propios n (contando multiplicidades algebraicas) que o bien son reales o bien se dan en pares de conjugados complejos.

Por ejemplo, piense en una matriz real de 20 por 20 con elementos aleatorios que se muestrean a partir de una distribución normal estándar. Calcule los valores propios usando eig.

rng("default")
z = eig(randn(20));

Represente la parte imaginaria frente a la parte real de los 20 valores propios. Tenga en cuenta que por cada valor propio zk=xk+yki que no esté en el eje real, hay otro par de conjugados complejos del valor propio zk*=xk-yki.

plot(z,"o")
axis equal
grid on
xlabel("Re(z)")
ylabel("Im(z)")

Figure contains an axes object. The axes object with xlabel Re(z), ylabel Im(z) contains a line object which displays its values using only markers.

Representar varios conjuntos de datos complejos

Represente la parte imaginaria frente a la parte real de dos conjuntos de datos complejos. Si pasa varios argumentos de entradas complejas a plot, como plot(z1,z2), la función plot ignora la parte imaginaria y representa únicamente la parte real de las entradas. Para representar la parte real frente a la parte imaginaria de varias entradas complejas, debe pasar explícitamente la parte real y la parte imaginaria a plot.

Por ejemplo, cree dos vectores complejos z1 y z2.

x = -2:0.25:2;
z1 = x.^exp(-x.^2);
z2 = 2*x.^exp(-x.^2);

Identifique la parte real y la parte imaginaria de cada vector con las funciones real e imag.

re_z1 = real(z1);
im_z1 = imag(z1);
re_z2 = real(z2);
im_z2 = imag(z2);

Represente los datos complejos.

plot(re_z1,im_z1,"*",re_z2,im_z2,"o")
axis equal
grid on
legend("z1","z2")
xlabel("Re(z)")
ylabel("Im(z)")

Figure contains an axes object. The axes object with xlabel Re(z), ylabel Im(z) contains 2 objects of type line. One or more of the lines displays its values using only markers These objects represent z1, z2.

Consulte también

| | | | |