Muy buenas aqui os muestro mi practica de MATLAB con 15 ejercicios!

Matlab

Contents

Ejercicio 1

%Imprimir una tabla formateada (entero y real) del logaritmo natural de los números 10, 20, 40, 60, y 80.
%Sugerencia: usar el comando fprintf y vectores.

numeros= [10 20 40 60 80]';
y = [numeros, log(numeros)]';
fprintf('\n numeros \tlog(numeros)\n')
fprintf('%4d\t%12.4f\n', y)
 numeros 	log(numeros)
  10	      2.3026
  20	      2.9957
  40	      3.6889
  60	      4.0943
  80	      4.3820

Ejercicio 2

%Hallar el vector X para la siguiente ecuación matricial

Matriz_A = [4 -2 -10;2 10 -12;-4 -6 16];
Matriz_B = [-10; 32; -16];
Vector_x = Matriz_A\Matriz_B
Vector_x =

    2.0000
    4.0000
    1.0000

Ejercicio 3

%Para la matriz de coeficientes anterior hallar la factorización LU, es decir A = LU y aplicar a continuación X = U'L'B para resolver el sistema anterior.

Matriz_A = [4 -2 -10;2 10 -12;-4 -6 16];
Matriz_B = [-10; 32; -16];
[V, D] = lu(Matriz_A)
Matriz_C= V*D
X = inv(D)*inv(V)*Matriz_B
V =

    1.0000         0         0
    0.5000    1.0000         0
   -1.0000   -0.7273    1.0000


D =

    4.0000   -2.0000  -10.0000
         0   11.0000   -7.0000
         0         0    0.9091


Matriz_C =

     4    -2   -10
     2    10   -12
    -4    -6    16


X =

     2
     4
     1

Ejercicio 4

Hallar los autovalores y autovectores de la matriz A

Matriz_A = [0 1 -1; -6 -11 6;-6 -11 5];
[X D] = eig(Matriz_A)
T_1 = Matriz_A*X
T_2 = 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


T_1 =

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


T_2 =

   -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

A = [1.5-2j -.35+1.2j; -.35+1.2j 0.9-1.6j];
B = [30+40j;20+15j];
V = A\B
S = V.*conj(B)
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. Torres de Hanoi uso: hanoi(N, Tini, Taux, Tdes) donde N = numero de discos (entero >0) Tini = torre inicial (caracter i.e. 'a') Taux = torre auxiliar (caracter i.e. 'b') Tdes = torre destino (caracter i.e. 'c')

hanoi(5,'a','b','c')
Undefined function 'hanoi' for input arguments of type 'double'.

Error in Matlab (line 46)
hanoi(5,'a','b','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 del polinomio de orden 2')
legend('Datos','Ajuste')

Ejercicio 8

%Partir la ventana Figure en cuatro particiones (2x2) y graficar las siguientes funciones para ?t de 0 a 3? en pasos de 0.05

wt = 0:0.05:3*pi;
% Graficar v = 120 seno ?t e i = 100 seno(?t - ?/4 ) en función de ?t en la parte superior izquierda
v = 120*sin(wt);
i = 100*sin(wt-(pi/4));
% Graficar p = vi en la parte superior izquierda
p = v.*i;
% Para Fm = 3.0, graficar fa = Fm seno ?t, fb = Fm seno(?t – 2 ?/3) y fc = Fm seno(?t – 4 ?/3) en función de ?t en la parte inferior izquierda
Fm = 3.0;
fa = Fm*sin(wt);
fb = Fm*sin(wt-2*pi/3);
fc = Fm*sin(wt-4*pi/3);
% Para fR = 3.0, construir un círculo de radio fR en la parte inferior derecha

subplot(2,2,2)
plot(wt,v,wt,i)
title('Tensión y Corriente'), xlabel('\omegat,rad')
subplot(2,2,1)
plot(wt,p)
title('Potencia'),xlabel('\omegat,rad')
subplot(2,2,3)
plot(wt,fa,wt,fb,wt,fc)
title('Fm trifásico'),xlabel('\omegat,rad')
fr = 3/2*Fm;
subplot(2,2,4)
plot(-fr*cos(wt),fr*sin(wt))
xlabel('\omegat,rad')

Ejercicio 9

%Graficar la curva paramétrica Para un intervalo de 0 a 16*pi

t = linspace(0,pi,2000);
subplot(1,1,1)
x=exp(-0.03*t).*cos(t);
y=exp(-0.03*t).*sin(t);
z=t;
plot3(x,y,z)
grid on

Ejercicio 10

%Graficar la curva Para un intervalo de -4 a 4 en pasos de 0.3

[x,y] = meshgrid(-4:0.3:4);
z = sin(x).*cos(y).*exp(-x.^2-y.^2).^0.5;
plot3(x,y,z)
mesh(x,y,z)
% Para verlo como una superficie coloreada
surf(x,y,z)

Ejercicio 11

%Hallar las raíces del polinomio

roots([1 0 -35 50 24])

%Ejercicio 12
%Resolver la ecuacion diferencial Sujeta a las condiciones iniciales: y(0) = a y dy(0)/dt = b Considerando el caso donde ? = 0.15, y(0) = 1, dy(0)/dt = 0 y la región de interés de la solución 0 ? t ? 35

% Para este apartado usaremos la funcion "HalfSine"
    % function y = HalfSine(t, y, z)
    % h = sin(pi*t/5).*(t<=5);
    % y = [y(2); -2*z*y(2)-y(1)+h];

[t,yy] = ode45(@HalfSine, [0 35], [1 0], [ ], 0.15);
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 Apartado 1

k=5;m=10;f0=10;B0=2.5;N=2^m;T=2^k/f0;ts=(0:N-1)*T/N;df=(0:N/2-1)/T;
SampledSignal= B0*sin(2*pi*f0*ts)+B0/2*sin(2*pi*f0*2*ts);
An=abs(fft(SampledSignal,N))/N;
plot(df,2*An(1:N/2))

% Apartado 2

k=5;m=10;f0=10;N=2^m;T=2^k/f0;ts=(0:N-1)*T/N;df=(0:N/2-1)/T;
SampledSignal=exp(-2*ts).*sin(2*pi*f0*ts);
An=abs(fft(SampledSignal,N))/N;
plot(df,2*An(1:N/2))

% Apartado 3

k=5;m=10;f0=10;N=2^m;T=2^k/f0;ts=(0:N-1)*T/N;df=(0:N/2-1)/T;
SampledSignal=sin(2*pi*f0*ts+5*sin(2*pi*(f0/10)*ts));
An=abs(fft(SampledSignal,N))/N;
plot(df,2*An(1:N/2))

% Apartado 4

k=5;m=10;f0=10;N=2^m;T=2^k/f0;ts=(0:N-1)*T/N;df=(0:N/2-1)/T;
SampledSignal=sin(2*pi*f0*ts-5*exp(-2*ts));
An=abs(fft(SampledSignal,N))/N;
plot(df,2*An(1:N/2))

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. Mostrar el valor para 200

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

Ejercicio 15

%Graficar la siguiente función curva en coordenadas polares

t = linspace(-pi,pi,100);
r = 2-4*cos(t);
polar(t,r)