Contents

EJERCICIO 1

Imprimir una tabla formateada (entero y real) del logaritmo natural de los números 10, 20, 40, 60, y 80.

x = [10 20 40 60 80 100]';
y = [x log(x)];
fprintf('Numero\tln(Numero) \n')
fprintf('%5d \t %.4f \n', y')
Numero	ln(Numero) 
   10 	 2.3026 
   20 	 2.9957 
   40 	 3.6889 
   60 	 4.0943 
   80 	 4.3820 
  100 	 4.6052 

EJERCICIO 2

Calcular IMC

% El código de la función es:

% while 1
%     est = input('Ingrese su estatura en metros: ');
%     peso = input('Ingrese su peso en kg: ');
%
%     imc=peso/(est^2);
%
%     if imc <16
%         fprintf('Infrapeso: Delgadez Severa')
%     elseif (imc<17 & imc>16)
%         fprintf('Infrapeso: Delgadez moderada')
%     elseif (imc<18.5 & imc>17)
%         fprintf('Infrapeso: Delgadez aceptable')
%     elseif (imc<25 & imc>18.5)
%         fprintf('Peso normal')
%     elseif (imc<30 & imc>25)
%         fprintf('Sobrepeso')
%     elseif (imc<35 & imc>30)
%         fprintf('Obeso: Tipo I')
%     elseif (imc<40 & imc>35)
%         fprintf('Obeso: Tipo II')
%     elseif (imc>40)
%         fprintfn
%         ('Obeso: Tipo III')
%     end
%
%     mensaje=input('Desea continuar (s/n): ')
%     	if mensaje==n
%             break
%         else
%             continue
%         end
% end

EJERCICIO 3

Cambio de base

%  u=input('¿En qué base quiere(2-16):? ');
%  v=input('Dime un número decimal: ');
%  a=dec2base(v,u);
%  disp(a)

EJERCICIO 4

Función Newton

 % El código de la función es:
%  function y=newton(fun,x0,tol)
%     dfun=diff(sym(fun));
%     f=subs(fun,x0);
%     df=subs(dfun,x0);
%     iteracion=1;
%     while abs(f)>tol
%         a=vpa(x0-f/df);
%         f=subs(fun,a);
%         df=subs(dfun,a);
%         x0=a;
%         iteracion
%         a
%         iteracion=iteracion+1;
%     end
% end

EJERCICIO 5

Calcular valores de calor y temperaturas incógnitas

A=[100 0 0 0 -1 1 0;0 200 0 0 0 -1 1; 0 0 50 0 -1 0 0; 0 0 0 100 0 -1 0; 0 300 0 0 0 0 -1;1 0 1 0 0 0 0;1 -1 0 -1 0 0 0];
B=[0 0 -50 -50 -50 25 0];

X=A/B;

% Calores
Q1=X(1)
Q2=X(2)
Q3=X(3)
Q4=X(4)

% Temperaturas

Tc=X(5)
Tp=X(6)
Tw=X(7)
Q1 =

    0.0092


Q2 =

   -0.0031


Q3 =

   -0.3015


Q4 =

   -0.6185


Tc =

     0


Tp =

   -0.0062


Tw =

    0.0062

EJERCICIO 6

Para la matriz de coeficientes anterior hallar el número de condición, las normas 1,2, Inf y frobenius, la factorización LU, es decir A = LU y aplicar a continuación X = U-1L-1b para resolver el sistema anterior.

% Matriz

A=[100 0 0 0 -1 1 0;0 200 0 0 0 -1 1; 0 0 50 0 -1 0 0;0 0 0 100 0 -1 0; 0 300 0 0 0 0 -1;1 0 1 0 0 0 0;1 -1 0 -1 0 0 0]
B=[0;0;-50;-50;-50;25;0]

% Número de condición
condicion=cond(A)

% Norma 1
norma1=norm(A,1)

% Norma 2
norma2=max(svd(A))

% Infinito
normainf=norm(A,inf)

% Frobenius
frobenius=norm(A,'fro')

% Factorización LU

[L U]=lu(A)
A =

   100     0     0     0    -1     1     0
     0   200     0     0     0    -1     1
     0     0    50     0    -1     0     0
     0     0     0   100     0    -1     0
     0   300     0     0     0     0    -1
     1     0     1     0     0     0     0
     1    -1     0    -1     0     0     0


B =

     0
     0
   -50
   -50
   -50
    25
     0


condicion =

   2.6488e+04


norma1 =

   501


norma2 =

  360.5570


normainf =

   301


frobenius =

  390.5278


L =

    1.0000         0         0         0         0         0         0
         0    0.6667         0         0         0    1.0000         0
         0         0    1.0000         0         0         0         0
         0         0         0    1.0000         0         0         0
         0    1.0000         0         0         0         0         0
    0.0100         0    0.0200         0    1.0000         0         0
    0.0100   -0.0033         0   -0.0100    0.3333    0.0167    1.0000


U =

  100.0000         0         0         0   -1.0000    1.0000         0
         0  300.0000         0         0         0         0   -1.0000
         0         0   50.0000         0   -1.0000         0         0
         0         0         0  100.0000         0   -1.0000         0
         0         0         0         0    0.0300   -0.0100         0
         0         0         0         0         0   -1.0000    1.6667
         0         0         0         0         0         0   -0.0311

EJERCICIO 7

Hallar los autovalores y autovectores de la matriz A:

% Introduzco la matriz

A=[0 1 -1; -6 -11 6; -6 -11 5];

% Calculo autovalores y autovectores

[autovectores autovalores]=eig(A)
autovectores =

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


autovalores =

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

EJERCICIO 8

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

A=[1.5-2j -0.35+1.2j; -0.35+1.2j 0.9-1.6j];
B=[30+40j; 20+15j];
disp('Voltajes: ')
V=A\B;
V1=V(1)
V2=V(2)

disp('Potencias: ')
S=V.*conj(B);
S1=S(1)
S2=S(2)
Voltajes: 

V1 =

   3.5902 +35.0928i


V2 =

   6.0155 +36.2212i

Potencias: 

S1 =

   1.5114e+03 + 9.0918e+02i


S2 =

   6.6363e+02 + 6.3419e+02i

EJERCICIO 9

Desarrollar una función de interpolación Lagrange

% El código de la función es:
% function lagrange()
% % Apartado a
%
%     f=@(x) 1./(1 + 25*x.^2); % @: handle
%     x = linspace(-1,1,500); % Creo el rango [-1,1] 500 puntos, para graficar
%     y_true=f(x);
%     figure;
%     plot(x,y_true,'r','linewidth',1);
%     hold on;
%
%
%     N = 10; % 10 puntos equidistantes
%     xint = linspace(-1,1,N);
%     yint = zeros(1,N);
%     y=f(xint);
%     n1=length(x); % tamaño del vector
%     for i = 1:n1;
%     	yint(i) = LagrangeINT(xint,y,x(i)); % Invocamos la función
%     end
%     plot(x,yint,'k');
%     hold on;
%
% % Apartado b
%
%     f=@(x) 1./(1 + 25*x.^2); % @: handle
%     x = linspace(-1,1,500); % Creo el rango [-1,1] 500 puntos, para graficar
%     y_true=f(x);
%     figure;
%     plot(x,y_true,'r','linewidth',1);
%     hold on;
%
%
%
%     N = 10;
%     xdata = linspace(-1,1,N+1);
%     ydata = f(xdata);
%     p = polyfit(xdata,ydata,N-1)
%     y_fit = polyval(p,x);
%     poly_10 = plot(x,y_fit,'b','linewidth',1);
%     hold on;
%     plot(xdata,ydata,'k.','markersize',12);
%     hold on;
%
%
% % Apartado c
%
%     N = 20;
%     xdata=linspace(-1,1,N+1);
%     ydata = f(xdata);
%     p = polyfit(xdata,ydata,N-1)
%     y_fit = polyval(p,x);
%     poly_20 = plot(x,y_fit,'g','linewidth',1);
%     hold on;
%     plot(xdata,ydata,'k.','markersize',12);
%     hold on;
% end
%
%
% function Yint = LagrangeINT(x,y,Xint) % La función igual al nombre del fichero
% n = length(x)
% L = ones(1,n);
% for i = 1:n
%     L(i)=1;
%     for j = 1:n
%         if j ~= i
%             L(i)=L(i)*(Xint-x(j))/(x(i)-x(j));
%         end
%     end
%     % Yint=Yint+y(i)*L
% end
% Yint=sum(y.*L);
% end

EJERCICIO 10

Fichero Excel [x,y,z,t]=xlsread('winddata.xlsx','A2:D78877');

EJERCICIO 11

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

x=-4:0.3:4;
y=x;
[A B]=meshgrid(x,y);
X=sin(A).*cos(B).*exp(-(A.^2+B.^2).^0.5);

% Dibujamos la curva

surf(A,B,X)

EJERCICIO 12

Resolver la ec. diferencial

% Establecemos condiciones iniciales

%     y0=1;
%     dy0=0;
%     k=0.15;
%     t0=0;
%     tf=35;

% Calculamos la solución

    %[t yy]=ode45(@funcionde,[t0 tf],[y0 dy0],[],k)

% La función y(t) es

	%yt=yy(:,1)
%     n=length(yt)
%     plot(linspace(0,35,n),yt)

% Derivada de dy(t)/dt:

    %dyt=yy(:,2)
    %plot(linspace(0,35,n),dyt)


% El código de la función es:

% function y=funcionde(t,y,z);
%     h=sin(pi*t/5).^(t<=5);
%     y=[y(2);-2*z*y(2)-y(1)+h];
% end

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:

% Valores
k=5;
m=10;
fo=10;
Bo=2.5;
N=2^m;
T=2^k/fo;
t=(0:N-1)*T/N;
df=(0:N/2-1)/T;

% Gráfica 1

g = Bo*sin(2*pi*fo*t)+Bo/2*sin(2*pi*fo*2*t);
An = abs(fft(g, N))/N;
plot(df, 2*An(1:N/2))
hold on

% Gráfica 2

g = exp((-2).*t).*sin(2*pi*fo*t);
An = abs(fft(g, N))/N;
plot(df, 2*An(1:N/2))
hold on

% Gráfica 3

g = sin(2*pi*fo*t+5*sin(2*pi*fo*t/10));
An = abs(fft(g, N))/N;
plot(df, 2*An(1:N/2))
hold on

% Gráfica 4

g = sin(2*pi*fo*t-5*exp(-2*t));
An = abs(fft(g, N))/N;
plot(df, 2*An(1:N/2))
hold on

EJERCICIO 14

Graficar la siguiente función curva en coordenadas polares :

% Función e intervalo

f=inline('2-4.*cos(t)');
i=linspace(-pi,pi,150);

% Gráfica

polar(i,f(i))

EJERCICIO 15

Ejercicio de una catenaria

% Parámetros:

w=10;
y0=5;
y=15;
x=50;

% Apartado a) Parámetro Ta
syms T

a=(T/w)*(cosh((w*x)/T))+y0-T/w-y;

Ta=solve(a,T)

% Apartado b) Longitud del cable

x1=150;

L=(2*Ta/w)*sinh(2*w*x/Ta)
Warning: Cannot solve symbolically. Returning a numeric
approximation instead. 
 
Ta =
 
1266.324360399888280635385997007
 
 
L =
 
221.44470407313733923826840058546