Contents

Ejercicio 2: Hallar el vector X para la siguiente ecuación matricial

A=[4 -2 -10; 2 10 -12; -4 -6 16];
B=[-10; 32; -16];
% Operación division matricial: X=A\B -> X=A^-1*B
X=A\B
X =

    2.0000
    4.0000
    1.0000

Ejercicio 4: Hallar los autovalores y autovectores de la matriz A

A=[0 1 -1; -6 -11 6; -6 -11 5];
% Funcion eig me da los autovalores y autovectores de la matriz
% X=Matriz de autovectores en columna, D=Matriz diagonal con los autovalores
[X,D]=eig(A)
% Con T1 y T2 comprobamos que se cumple (no hace falta hacerlo)
T1=A*X
T2=X*D
X =

    0.7071   -0.2182   -0.0921
    0.0000   -0.4364   -0.5523
    0.7071   -0.8729   -0.8285


D =

   -1.0000         0         0
         0   -2.0000         0
         0         0   -3.0000


T1 =

   -0.7071    0.4364    0.2762
   -0.0000    0.8729    1.6570
   -0.7071    1.7457    2.4856


T2 =

   -0.7071    0.4364    0.2762
   -0.0000    0.8729    1.6570
   -0.7071    1.7457    2.4856

Ejercicio 5: Para el siguiente circuito, determinar los voltajes de los nodos V1 y V2 y la potencia entregada por cada fuente

% aplicando Kirchoff se obtiene el siguiente sistema:

Y=[1.5-2j -0.35+1.2j;-0.35+1.2j 0.9-1.6j];
I=[30+40j; 20+15j];
disp('Solucion:')   % La potencia de la fuente es: S = V I*
V=Y\I
S=V.*conj(I)
Solucion:

V =

   3.5902 +35.0928i
   6.0155 +36.2212i


S =

  1.0e+003 *

   1.5114 + 0.9092i
   0.6636 + 0.6342i

Ejercicio 6: Escribir una función recursiva para resolver el problema de la Torres de Hanoi y probarla para un valor 5 discos.

% Necesitariamos [(2^n)-1] movimientos, siendo n el numero de discos

% % Torres de Hanoi:
% % Uso:  hanoi(N,Tini,Taux,Tdes)
% %      donde N = numero de discos entero
% %      Tini = Torre inicial
% %      Taux = Torre auxiliar
% %      Tdes = Torre destino

% function hanoi(n, i, a, f)
%    if n>0
%        hanoi(n-1, i, f, a);
%        fprintf('mover disco %d de %c a %c\n', n, i, f);
%        hanoi(n-1, a, i, f);
%    end

% Recurrimos a la función hanoi ya creada para resolver el problema
% Le introducimos el valor 5 (discos)
hanoi(5,'a','b','c')
mover disco 1 de a a c
mover disco 2 de a a b
mover disco 1 de c a b
mover disco 3 de a a c
mover disco 1 de b a a
mover disco 2 de b a c
mover disco 1 de a a c
mover disco 4 de a a b
mover disco 1 de c a b
mover disco 2 de c a a
mover disco 1 de b a a
mover disco 3 de c a b
mover disco 1 de a a c
mover disco 2 de a a b
mover disco 1 de c a b
mover disco 5 de a a c
mover disco 1 de b a a
mover disco 2 de b a c
mover disco 1 de a a c
mover disco 3 de b a a
mover disco 1 de c a b
mover disco 2 de c a a
mover disco 1 de b a a
mover disco 4 de b a c
mover disco 1 de a a c
mover disco 2 de a a b
mover disco 1 de c a b
mover disco 3 de a a c
mover disco 1 de b a a
mover disco 2 de b a c
mover disco 1 de a a c

Ejercicio 7: Ajustar un polinomio de orden 2 a los siguientes datos y graficar los puntos dados con el símbolo x y la curva ajustada con una línea sólida. Colocar una leyenda adecuada, etiquetas en los ejes y un título al gráfico.

x=0:0.5:5;
y=[10 10 16 24 30 38 52 68 82 96 123];
p=polyfit(x,y,2)
yc=polyval(p,x);
plot(x,y,'x',x,yc);
xlabel('x'),ylabel('y'),grid,title('Ajuste polinomico')
legend('Datos','Ajuste polinomico',4)
p =

    4.0233    2.0107    9.6783

Ejercicio 8: Partir la ventana Figure en cuatro particiones (2x2) y graficar las siguientes funciones para wt de 0 a 3p en pasos de 0.05

x=[0:0.05:3*pi];
figure;
% Graficar v = 120 seno wt e i = 100 seno(wt - p/4 ) en función de wt en la parte superior izquierda
subplot(2,2,1);
plot(x,120*sin(x));
hold on;
plot(x, 100*sin(x-pi*.25));
% Graficar p = vi en la parte superior derecha
subplot(2,2,2);
plot(x,120*sin(x)*100.*sin(x-(pi*.25)));
% Para Fm = 3.0, graficar fa = Fm seno wt, fb = Fm seno(wt – 2 p/3) y fc =
% Fm seno(wt– 4 p/3) en función de wt en la parte inferior izquierda
subplot(2,2,3);
plot(x,3*sin(x));
hold on;
plot(x,3*sin(x-2*(pi/3)));
hold on;
plot(x,3*sin(x-4*(pi/3)));
% Para fR = 3.0, construir un círculo de radio fR en la parte inferior derecha
subplot(2,2,4);
ang=0:0.01:2*pi;
xp=3*cos(ang);
yp=3*sin(ang);
plot(xp,yp);

Ejercicio 11: Hallar las raíces del polinomio f(x)=x^4-35*x^2+50*x+24

% Creamos el vector que contiene los coeficientes del polinomio
Coef=[1 0 -35 50 24];
% Sacamos las raices del polinomio:
roots(Coef)
ans =

   -6.4910
    4.8706
    2.0000
   -0.3796

Ejercicio 12: Resolver la ec. diferencial

[t, yy] = ode45(@HalfSine, [0 35], [1 0], [], 0.15);
figure;
plot(t, yy(:,1))

Ejercicio 13: Tomando como base las condiciones del ejemplo de la transformada de Fourier de los apuntes (pág. 124), graficar para las siguientes señales la gráfica de la señal en el tiempo y la gráfica de la amplitud espectral en función de la frecuencia:

% Base ejemplo de la transformada de Fourier
k = 5;   m = 10;   fo = 10;   Bo = 2.5;
N = 2^m;   T = 2^k/fo;
ts = (0:N-1)*T/N;
df = (0:N/2-1)/T;
    % Primer caso
SampledSignal = Bo*sin(2*pi*fo*ts)+Bo/2*sin(2*pi*fo*2*ts);
An = abs(fft(SampledSignal, N))/N;
plot(df, 2*An(1:N/2));
hold on
    % Segundo caso
SampledSignal = exp(-2*ts).*sin(2*pi*fo*ts);
An = abs(fft(SampledSignal, N))/N;
plot(df, 2*An(1:N/2))
hold on
    % Tercer caso
SampledSignal = sin(2*pi*fo*ts+sin(2*pi*fo*.1*ts));
An = abs(fft(SampledSignal, N))/N;
plot(df, 2*An(1:N/2));
hold on
    % Cuarto caso
SampledSignal = sin(2*pi*fo*ts-5*exp(-2*ts));
An = abs(fft(SampledSignal, N))/N;
plot(df, 2*An(1:N/2))
hold on

Ejercicio 14: Leer y graficar la imagen WindTunnel.jpg de las transparencias y graficar en sendos gráficos el valor del color rojo de la imagen en función del ancho de la imagen y el histograma del mismo para una fila de la imagen que se pide al usuario.

 v = imread('WindTunnel.jpg');
 image(v)
 figure;
 row = 2;
 red = v(row, :, 1);
 gr  = v(row, :, 2);
 bl  = v(row, :, 3);
 plot(red, 'r');
 hold on
 plot(gr, 'g');
 plot(bl, 'b');