MATLAB
—---------------------------EJERCICIOS EXAMEN EJEMPLO—------------------------
ECUACIONES DE CAUCHY-RIEMANN
%% 1. Definir variables simbólicas reales
syms x y real
z = x + 1i*y;
%% 2. Definir la función
f = 1/z^5;
%% 3. Extraer Parte Real (u) y Parte Imaginaria (v)
u = simplify(real(f));
v = simplify(imag(f));
%% 4. Calcular Derivadas Parciales
du_dx = simplify(diff(u, x));
du_dy = simplify(diff(u, y));
dv_dx = simplify(diff(v, x));
dv_dy = simplify(diff(v, y));
%% 5. Comprobar Cauchy-Riemann
% Si dan 0, la función es analítica en su dominio de definición
check1 = simplify(du_dx - dv_dy);
check2 = simplify(du_dy + dv_dx);
disp('Resultado de Cauchy-Riemann (0 indica que se cumple la estructura):');
disp(['Check 1: ', char(check1)]);
disp(['Check 2: ', char(check2)]);
%% 6. DETECTAR PUNTOS PROBLEMÁTICOS (Singularidades)
% Extraemos el numerador (N) y denominador (D) de una de las derivadas.
% Si la derivada se rompe (D=0), la función no es analítica ahí.
[N, D] = numden(du_dx);
% Resolvemos la ecuación "Denominador == 0" para encontrar los puntos malos
puntos_singulares = solve(D == 0, [x, y]);
disp('------------------------------------------------');
disp('La función NO es analítica en los siguientes puntos (Singularidades):');
% Mostramos resultados en estructura (x, y)
if isempty(puntos_singulares.x)
disp('No se encontraron puntos singulares (Analítica en todo R^2).');
else
disp(['x = ', char(puntos_singulares.x)]);
disp(['y = ', char(puntos_singulares.y)]);
end
Si tanto check1 como check2 dan 0, la función es analítica
INTEGRALES COMPLEJAS
Este tipo de ejercicios te pueden definir la curva gamma(t) de dos formas
OPCIÓN A: Círculo centro z0 y radio R:z0 + R*exp(1i*t)
OPCIÓN B: Segmento de z0 a z1: (1-t)*z0 + t*z1
OPCIÓN B
clear; clc;
syms t real
% 0. Definir los puntos del enunciado
z0 = pi + 1i;
z1 = 1i*exp(2);
z2 = 3^11;
%% --- TRAMO 1: Segmento de z0 a z1 ---
% 1. Definir la curva gamma (OPCIÓN B: Segmento)
% Fórmula: (1-t)*Inicio + t*Fin
gamma1 = (1-t)*z0 + t*z1;
% 2. Definir la función sustituyendo z por gamma
% La función es f(z) = sin(z)^3
f1 = sin(gamma1)^3;
% 3. Calcular dz (derivada)
dz1 = diff(gamma1, t);
% 4. Integrar (en segmentos t va siempre de 0 a 1)
integral_1 = int(f1 * dz1, t, 0, 1);
%% --- TRAMO 2: Segmento de z1 a z2 ---
% Repetimos el proceso para el segundo segmento
gamma2 = (1-t)*z1 + t*z2;
f2 = sin(gamma2)^3;
dz2 = diff(gamma2, t);
integral_2 = int(f2 * dz2, t, 0, 1);
%% --- RESULTADO FINAL ---
total = integral_1 + integral_2;
disp('Valor simbólico exacto:');
pretty(simplify(total))
disp('Valor numérico (4 decimales):');
vpa(total, 4)
OPCIÓN A
syms t real
% 1. Definir la curva gamma(t)
z0 = 0; R = 2;
gamma_t = z0 + R*exp(1i*t);
% 2. Definir la función sustituyendo z por gamma_t
% EJEMPLO: f(z) = z^2 / (z-1)
f_z = (gamma_t)^2 / (gamma_t - 1);
% 3. Calcular dz (derivada de la curva)
dz = diff(gamma_t, t);
% 4. Integrar f(gamma) * dz entre los límites (ej: 0 a 2*pi)
integral_val = int(f_z * dz, t, 0, 2*pi);
disp('Valor de la integral:');
pretty(simplify(integral_val))
SERIES DE FOURIER (Para calcular an y bn)
syms t n
% Definimos la función y el semi-periodo L
% Si el ciclo completo es 1, entonces T=1, lo que implica L=0.5 (T=2L)
% Sin embargo, para series definidas en [0, T], las fórmulas cambian ligeramente.
% Usaremos la definición estándar sobre el intervalo [0, 1].
f = t^5;
T = 1;
w0 = 2*pi/T; % Frecuencia angular base
% 1. Calcular a0
a0 = (2/T) * int(f, t, 0, T)
% 2. Calcular an
an_formula = (2/T) * int(f * cos(n * w0 * t), t, 0, T);
a3 = subs(an_formula, n, 3) % Sustituimos n=3
% 3. Calcular bn
bn_formula = (2/T) * int(f * sin(n * w0 * t), t, 0, T);
b5 = subs(bn_formula, n, 5) % Sustituimos n=5
—----int realiza la integración simbólica. subs sustituye la variable simbólica n por el
número armónico específico (3 o 5)----------
LAPLACE Y SU INVERSA
syms t s
% Parte 1: Transformada directa de Laplace
f1 = cos(t) + t^2*sin(t);
L_f1 = laplace(f1, t, s);
% Simplificamos para que coincida con la solución
L_f1 = simplify(L_f1)
% Parte 2: Transformada inversa de Laplace
F2 = (s^3 + 3*s) / (s^2 + 1)^2;
inv_F2 = ilaplace(F2, s, t)
n TÉRMINOS DE MACLAURIN
syms t
f = cos(t) / (1 - 2*t^3);
% Calculamos Taylor alrededor de 0 (Maclaurin)
% 'Order', 7 significa que calcula hasta el término de grado 6 (O(t^7))
serie = taylor(f, t, 'Order', 7)
TEOREMA DE LOS RESIDUOS
syms z
% 1. Definimos el denominador tal cual el enunciado
denom = 2*z^4 - (pi + 2i)*z^3 + (18 + pi*1i)*z^2 - (9*pi + 18i)*z + 9*pi*1i;
% 2. Buscamos las raíces (polos)
polos = solve(denom == 0, z);
% Imprimimos los polos para ver cuáles son
disp('Los polos encontrados son:');
disp(polos);
% 3. Filtramos los que están dentro de |z| < 2
% Nota: eval() o double() es necesario porque 'pi' es simbólico
polos_adentro = polos(double(abs(polos)) < 2);
disp('Polos dentro de la curva:');
disp(polos_adentro);
% 4. Teorema de los Residuos
f = 1 / denom;
suma_residuos = 0;
for k = 1:length(polos_adentro)
pk = polos_adentro(k);
% Calculamos residuo en cada polo interior
res_k = limit((z - pk) * f, z, pk);
suma_residuos = suma_residuos + res_k;
end
% 5. Resultado final (multiplicar por 2*pi*i)
integral_res = 2*pi*1i * suma_residuos;
% Simplificamos para comparar con la solución del PDF
solucion = simplify(integral_res);
disp('Solución calculada:');
pretty(solucion)
TRANSFORMADA DE FOURIER
syms t w
% Definir función "caja" usando Heaviside (escalón unitario)
% Vale 3 entre 0 y 4, y 0 en el resto.
f = 3 * (heaviside(t) - heaviside(t - 4));
% Calcular Fourier
% NOTA: MATLAB usa por defecto una definición de Fourier que puede diferir en
constantes.
% Para coincidir con la solución del PDF (que tiene sqrt(pi)), es posible que
% el curso use la definición unitaria o asimétrica específica.
F_w = fourier(f, t, w);
% Intentamos simplificar o reescribir para ver la forma trigonométrica
simplify(rewrite(F_w, 'sinc')) % A veces ayuda convertir a sinc
TRANSFORMADA Z
syms n z
% Parte 1: Transformada Z directa
xn = n^2 * cos(pi*n/2);
X_z = ztrans(xn, n, z);
X_z = simplify(X_z)
% Parte 2: Transformada Z inversa
X_z_inv = (1 + 2*z) / (1 + z)^5;
xn_result = iztrans(X_z_inv, z, n);
—---------------------------OTROS TIPOS DE EJERCICIOS—--------------------------
1. Te dan solo u y te piden hallar v
clear; clc;
syms x y z real % 'real' es vital para separar u y v correctamente
%% 1. DATOS DE ENTRADA (Modifica esta sección según tu examen)
% Ejemplo: Te dan u = x^3 - 3*x*y^2 + x
dato = x^3 - 3*x*y^2 + x;
es_parte_real = true; % Pon 'false' si el dato es v
%% 2. MÉTODO MILNE-THOMSON (Cálculo de f(z))
if es_parte_real
u_in = dato;
% Si dan u: f'(z) = du/dx(z,0) - i*du/dy(z,0)
du_dx = diff(u_in, x);
du_dy = diff(u_in, y);
f_prima = subs(du_dx, {x, y}, {z, 0}) - 1i * subs(du_dy, {x, y}, {z, 0});
else
v_in = dato;
% Si dan v: f'(z) = dv/dy(z,0) + i*dv/dx(z,0)
dv_dx = diff(v_in, x);
dv_dy = diff(v_in, y);
f_prima = subs(dv_dy, {x, y}, {z, 0}) + 1i * subs(dv_dx, {x, y}, {z, 0});
end
% Integramos para obtener f(z)
f_z = int(f_prima, z);
%% 3. SEPARACIÓN DE U y V
% Sustituimos z = x + iy en la solución
f_xy = subs(f_z, z, x + 1i*y);
% Extraemos y simplificamos partes real e imaginaria
u_final = simplify(real(f_xy));
v_final = simplify(imag(f_xy));
%% 4. MOSTRAR RESULTADOS
disp('--------------------------------------------------');
disp('RESULTADO 1: Función f(z) compleja:');
pretty(f_z)
disp('(Recuerda añadir la constante +C o +iC al copiarlo)');
disp('--------------------------------------------------');
disp('RESULTADO 2: Componentes u(x,y) y v(x,y):');
disp('u(x,y) = '); pretty(u_final)
disp('v(x,y) = '); pretty(v_final)
disp('--------------------------------------------------');
2. Calcular serie de Taylor (y de Maclaurin si lo centramos en 0)
syms z
% 1. Define la función
f = log(z); % EJEMPLO (log(z) no existe en 0, hay que hacerlo en otro lado)
% 2. Define el centro (z0) y el Orden
z0 = 1; % CAMBIAR ESTO (Ej: 1, pi, 1+1i, etc.)
grado = 6; % Hasta qué potencia quieres (aprox)
% 3. El comando clave es 'ExpansionPoint'
serie = taylor(f, z, 'ExpansionPoint', z0, 'Order', grado);
disp(['Serie de Taylor centrada en ', char(sym(z0)), ':']);
pretty(serie)