Contents
Ejercicio 1
%Imprimir una tabla formateada (entero, real 4d, real 6d) del logaritmo natural y logaritmo % decimal de los siguientes números: 10, 20, 40, 60, 80, 100. % Nota: Usar el comando fprintf y vectores x=[10;20;40;60;80;100]; y=[x,log(x),log10(x)]; fprintf('\n Numero \t ln(Numero) \t log(Numero) \n') fprintf('\t%4i\t\t%8.4f\t\t%8.6f\n',y')
Numero ln(Numero) log(Numero) 10 2.3026 1.000000 20 2.9957 1.301030 40 3.6889 1.602060 60 4.0943 1.778151 80 4.3820 1.903090 100 4.6052 2.000000
Ejercicio 2
%Programa que invoca una función y devuelve el imc de una persona. % function [ v m ] = imcdef(p,e) % % v = p / (e^2); % % if ( v<16 ) % m='Infrapeso: Delgadez Severa'; % elseif ( v<17 ) % m='Infrapeso: Delgadez Moderada'; % elseif ( v<18.5 ) % m='Infrapeso: Delgadez Aceptable'; % elseif ( v<25 ) % m='Peso normal'; % elseif ( v<30) % m='Sobrepeso'; % elseif ( v<35) % m='Obeso: Tipo I'; % elseif ( v<40 ) % m='Obeso: Tipo II'; % else % m='Obeso: Tipo III'; % end % % end c=1; while c==1 p= str2double(inputdlg('Ingrese el peso en kg: ')); e= str2double(inputdlg('Ingrese estatura en m: ')); [v m]=imcdef(p,e); fprintf('%.3f Su medico dice: %s\n',v,m) c=str2double(inputdlg('¿Desea continuar? Sí(1)/No(0). ')); end
22.498 Su medico dice: Peso normal
Ejercicio 3
%Imprimimos una tabla de números en base decimal y otra tabla equivalente, %pero en otra base: % function cambio_base(n,b) % basecad = '0123456789abcdef'; % if (n>=b) % cambio_base(floor(n/b),b); % end % fprintf('%c',basecad(mod(n,b)+1)) % % end n=2:128; b=16; for i=1:128 fprintf('%5d \t ',i) cambio_base(i,b) fprintf('\n') end
1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 a 11 b 12 c 13 d 14 e 15 f 16 10 17 11 18 12 19 13 20 14 21 15 22 16 23 17 24 18 25 19 26 1a 27 1b 28 1c 29 1d 30 1e 31 1f 32 20 33 21 34 22 35 23 36 24 37 25 38 26 39 27 40 28 41 29 42 2a 43 2b 44 2c 45 2d 46 2e 47 2f 48 30 49 31 50 32 51 33 52 34 53 35 54 36 55 37 56 38 57 39 58 3a 59 3b 60 3c 61 3d 62 3e 63 3f 64 40 65 41 66 42 67 43 68 44 69 45 70 46 71 47 72 48 73 49 74 4a 75 4b 76 4c 77 4d 78 4e 79 4f 80 50 81 51 82 52 83 53 84 54 85 55 86 56 87 57 88 58 89 59 90 5a 91 5b 92 5c 93 5d 94 5e 95 5f 96 60 97 61 98 62 99 63 100 64 101 65 102 66 103 67 104 68 105 69 106 6a 107 6b 108 6c 109 6d 110 6e 111 6f 112 70 113 71 114 72 115 73 116 74 117 75 118 76 119 77 120 78 121 79 122 7a 123 7b 124 7c 125 7d 126 7e 127 7f 128 80
Ejercicio 4
%Desarrollar una función Newton para aproximar una raíz real de una función mediante %el método de Newton % function y=funcion() % syms x % f=x^3-sin(x); % df=diff(f); % y=[f df]; % end % function newton(f,df,x0,tol) % syms x % i=1; % fx(i)=x0; % f1=subs(f,x,fx(i)); % d=subs(df,x,fx(i)); % % e(1)=100; % while abs(e(i))>=tol % fx(i+1)=fx(i)-f1/d; % f1=subs(f,x,fx(i+1)); % d=subs(df,x,fx(i+1)); % e(i+1)=abs(fx(i+1)-fx(i)); % i=i+1; % end % fprintf('\n i \t fx(i) \t Error aproximado (i) \n'); % for j=1:i % fprintf('%2i \t %11.5f \t %7.3f \n',j,fx(j),e(j)); % end % end fprintf('\nEjercicio 4') y=funcion(); f=y(1); df=y(2); tol=inputdlg('Introduzca la tolerancia: '); tol=str2double(tol); newton(f,df,-0.75,tol) newton(f,df,-0.5,tol) newton(f,df,0,tol) newton(f,df,0.5,tol) newton(f,df,1.4,tol)
Ejercicio 4 i fx(i) Error aproximado (i) 1 -0.75000 100.000 2 -1.02177 0.272 3 -0.93990 0.082 4 -0.92882 0.011 5 -0.92863 0.000 i fx(i) Error aproximado (i) 1 -0.50000 100.000 2 2.27801 2.778 3 1.59597 0.682 4 1.19612 0.400 5 0.99728 0.199 6 0.93507 0.062 7 0.92869 0.006 i fx(i) Error aproximado (i) 1 0.00000 100.000 2 0.00000 0.000 i fx(i) Error aproximado (i) 1 0.50000 100.000 2 -2.27801 2.778 3 -1.59597 0.682 4 -1.19612 0.400 5 -0.99728 0.199 6 -0.93507 0.062 7 -0.92869 0.006 i fx(i) Error aproximado (i) 1 1.40000 100.000 2 1.09202 0.308 3 0.95898 0.133 4 0.93000 0.029 5 0.92863 0.001
Ejercicio 5
%Resolver el sistema de ecuaciones expresado matricialmente de la hoja
A=[100 zeros(1,3) -1 1 0;0 200 zeros(1,3) -1 1;0 0 50 0 -1 0 0;zeros(1,3) 100 0 -1 0;0 300 zeros(1,4) -1; 1 0 1 zeros(1,4);1 -1 0 -1 zeros(1,3)];
b=[0 0 -50 -50 -50 25 0]';
x=A\b
x = 1.0e+03 * 0.0054 0.0009 0.0196 0.0045 1.0321 0.4964 0.3179
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 A=[100 zeros(1,3) -1 1 0;0 200 zeros(1,3) -1 1;0 0 50 0 -1 0 0;zeros(1,3) 100 0 -1 0;0 300 zeros(1,4) -1; 1 0 1 zeros(1,4);1 -1 0 -1 zeros(1,3)]; b=[0 0 -50 -50 -50 25 0]'; n=cond(A) n1=norm(A,1) n2=norm(A,2) ninf=norm(A,Inf) nfrob=sqrt(trace(A'*A)) [L U]=lu(A) C=L*U %Resolvemos el sistema: X=inv(U)*inv(L)*b
n = 2.6488e+04 n1 = 501 n2 = 360.5570 ninf = 301 nfrob = 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 C = 100.0000 0 0 0 -1.0000 1.0000 0 0 200.0000 0 0 0 -1.0000 1.0000 0 0 50.0000 0 -1.0000 0 0 0 0 0 100.0000 0 -1.0000 0 0 300.0000 0 0 0 0 -1.0000 1.0000 0 1.0000 0 0 0 0 1.0000 -1.0000 0 -1.0000 0 0 0 X = 1.0e+03 * 0.0054 0.0009 0.0196 0.0045 1.0321 0.4964 0.3179
Ejercicio 7
Hallamos los autovalores y autovectores de la matriz A:
A=[0 1 -1;-6 -11 6;-6 -11 5]; [X,D]=eig(A); fprintf('\n Autovectores (Columnas de la matriz)\n') X(:,1) fprintf('\n Autovalores (Diagonal)\n')
Autovectores (Columnas de la matriz) ans = 0.7071 0.0000 0.7071 Autovalores (Diagonal)
Ejercicio 8
Para el circuito de la hoja, determinamos los voltajes de los nodos V1 y V2 y la potencia entregada por cada fuente
Y=[1.5-2j -.35+1.2j;-.35+1.2j 0.9-1.6j]; I=[30+40j;20+15j] V=Y\I S=V.*conj(I)
I = 30.0000 +40.0000i 20.0000 +15.0000i V = 3.5902 +35.0928i 6.0155 +36.2212i S = 1.0e+03 * 1.5114 + 0.9092i 0.6636 + 0.6342i
Ejercicio 9
%Desarrollar una función mediante una interpolación de Lagrange y otra %serie de métodos f= @(x) 1./(1+25*x.^2); x=linspace(-1,1,500); y_true=f(x); figure; plot(x,y_true,'r','linewidth',1); hold on;

N=10; xint=linspace(-1,1,N); yint=zeros(1,N); y=f(xint); n1=length(x); for i=1:n1 yint(i)=LagrangeINT(xint,y,x(i)); end plot(x,yint,'k') hold on;

N=10; xdata=linspace(-1,1,N)'; 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; N=20; xdata=linspace(-1,1,N)'; 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; axis([-1 1 -5 5]); lh=legend([poly_10,poly_20],{'N = 10','N = 20'}); set(lh,'fontsize',10); hold off;

Ejercicio 10
%A partir de los datos del viento de un fichero excel (winddata), %obetener una serie de gráficos date=xlsread('winddata','Hoja1','A2:A78877'); time=xlsread('winddata','Hoja1','B2:B78877'); dir=xlsread('winddata','Hoja1','C2:C78877'); speed=xlsread('winddata','Hoja1','D2:D78877'); [xds,yds]=datastats(time,dir) [xds,yds]=datastats(time,speed) % hist(time,25) hold on; xlabel('Rango (Tiempo)','FontSize',11); ylabel('Número de vientos','FontSize',11); hold off; % t=pi/180; hist(dir*t,36) hold on; xlabel('Rango (Direccion)','FontSize',11); ylabel('Número de vientos','FontSize',11); hold off;
xds = num: 78876 max: 24 min: 1 mean: 12.5009 median: 13 range: 23 std: 6.9222 yds = num: 78876 max: 990 min: 0 mean: 195.4474 median: 200 range: 990 std: 96.1384 xds = num: 78876 max: 24 min: 1 mean: 12.5009 median: 13 range: 23 std: 6.9222 yds = num: 78876 max: 22.8000 min: 0 mean: 6.2293 median: 5.7000 range: 22.8000 std: 3.0272

Ejercicio 11
Grafica de la curva de la hoja
[x,y]=meshgrid(-4:0.3:4); z=sin(x).*cos(y).*exp(-(x.^2+y.^2).^0.5); mesh(x,y,z)

Ejercicio 12
Resolvemos la ec. diferencial de la hoja function y = HalfSine(t, y, z) h = sin(pi*t/5).*(t<=5); y = [y(2); -2*z*y(2)-y(1)+h];
ej_ode [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), graficamos 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 (Mirar hoja)
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; g1 = Bo*sin(2*pi*fo*ts)+Bo/2*sin(2*pi*fo*2*ts); An1 = abs(fft(g1, N))/N; plot(df, 2*An1(1:N/2)) g2 = exp(-2*ts).*sin(2*pi*fo*ts); An2 = abs(fft(g2, N))/N; plot(df, 2*An2(1:N/2)) g3 = sin(2*pi*fo*ts+5*sin(2*pi*(fo/10)*ts)); An3 = abs(fft(g3, N))/N; plot(df, 2*An3(1:N/2)) g4 = sin(2*pi*fo*ts-5*exp(-2*ts)); An4 = abs(fft(g4, N))/N; plot(df, 2*An4(1:N/2))

Ejercicio 14
Grafica de la función de la hoja curva en coordenadas polares
theta = linspace(-pi, pi, 300); p = abs(besselj(2, -4*cos(theta))); polar(theta, p/max(p))

Ejercicio 15
%Ejercicio para obtener una serie de parámetros definidos mediante %ecuaciones no lineales, de una catenaria syms T f=inline('15-((T/10)*cosh((10/T)*50)+5-(T/10))'); solve(f) %Comprobación f(ans) % g=inline('(2*1266.32/10)*sinh(20*x/1266.32)'); g(150) % f=inline('15-((T./10).*cosh((10./T)*50)+5-(T./10))'); T=linspace(-50,100,100); y=f(T); plot(T,y,'k','markersize',12)
ans = 1266.324360399888280635385997007 ans = 0.0 ans = 1.3415e+03

%Trabajo realizado por: Alfonso de Lama Rojo % 3/1/2018 % Confirmo que este trabajo es de elaboración propia.