Tarea Matlab

Contents

Ejercicio 1 a)

%Ejercicio 1
% Apartado a)
%Beltrán Gutiérrez
function x=factr(n)
%Ejercicio1 apartado a
if n==0
    x=1;
else
    x=n.*factr(n-1);
end

Ejercicio 1 b)

%Ejercicio 1
% Apartado b)
%Beltrán Gutiérrez
function x=combina(n,i)
%(n i)=n!/(i!*(n-i)!)
x=factr(n)/(factr(i)*factr(n-i));
end

x=factr(n)/(factr(i)*factr(n-i));

Ejercicio 1 c)

%Ejercicio 1
% Apartado c)
%Beltrán Gutiérrez
function b=bernstein(n,i,t)
%B(x)=(n i)t^i(1-t)^(n-i)
b=combina(n,i)*t.^i.*(1-t).^(n-i);
end

b=combina(n,i)*t.^i.*(1-t).^(n-i);
%Ejercicio 1
%Apartado c)
%Beltrán Gutiérrez
t=linspace(0,1);
n=3;%grado
for i=0:n
    b=bernstein(n,i,t);
    plot(t,b);
    hold on;
end
xlabel('t');
ylabel('Polinomio de Bernstein grado 3');
title('Polinomios de Bernstein');
legend('B_3,0','B_3,1','B_3,2','B_3,3');

Ejercicio 1 d)

%Ejercicio 1
% Apartado d)
%Beltrán Gutiérrez
%Q=sumatorio(Vi+1*Bn,i)
t=linspace(0,1);
V=[1,2,4,4.6;1,3,-1,1.5];
plot(V(1,:),V(2,:),'-o');
n=size(V);
n=n(2);
s=size(t);
x=zeros(n,s(2));
y=zeros(n,s(2));
for i=1:n
    x(i,:)=bernstein(n-1,i-1,t)*V(1,i);
    y(i,:)=bernstein(n-1,i-1,t)*V(2,i);
end
a=sum(x);
b=sum(y);
hold on;
plot(a,b)
xlabel('t');
ylabel('Polinomio de Bernstein grado 3');

Ejercicio 2 a)

%Ejercicio 2
%Apartado a)
%Beltrán Gutiérrez

[NUMEROS,TEXTO,RESTO]=xlsread('sotaventogaliciaanual.xlsx');
figure(2)
histogram(NUMEROS,0:25)

Ejercicio 2 b)

%Ejercicio 2
% Apartado b)
%Beltrán Gutiérrez

[NUMEROS,TEXTO,RESTO]=xlsread('sotaventogaliciaanual.xlsx');
k0=mean(NUMEROS);
c0=std(NUMEROS)^2;
y=histc(NUMEROS,0:25);
frecuencias=y/sum(y);
a0=[c0 k0];
x=0:25;
x=x';
f=@(a,x) (a(1)/a(2))*((x/a(2)).^(a(1)-1)).*exp(-(x/a(2)).^a(1));
af=nlinfit(x,frecuencias,f,a0);

xd=linspace(0,25);
yd=f(af,xd);
bar(0:25,frecuencias)
hold on
plot(xd,yd)

Ejercicio 2 c)

%Ejercicio 2
% Apartado c)
%Beltrán Gutiérrez

[NUMEROS,TEXTO,RESTO]=xlsread('sotavento_curva potencia.xlsx');
velocidad=NUMEROS(:,1);
pot=NUMEROS(:,2);
xd=linspace(0,25);
yd=interp1(velocidad,pot,xd,'pchip');
plot(velocidad,pot,'*')
hold on
plot(xd,yd)

Ejercicio 2 d)

%Ejercicio 2
%Apartado d)
%Beltrán Gutiérrez
[NUMEROS,TEXTO,RESTO]=xlsread('sotaventogaliciaanual.xlsx');
k0=mean(NUMEROS);
c0=std(NUMEROS)^2;
BINS=0:25;
y=histc(NUMEROS,BINS);
frecuencias=y/sum(y);
a0=[c0 k0];
x=0:25;
x=x';
f=@(a,x) (a(1)/a(2))*((x/a(2)).^(a(1)-1)).*exp(-(x/a(2)).^a(1)); %distribución de weibull
af=nlinfit(x,frecuencias,f,a0);

%función de potencia
[NUMEROS,TEXTO,RESTO]=xlsread('sotavento_curva potencia.xlsx');
velocidad=NUMEROS(:,1);
pot=NUMEROS(:,2);
P=polyfit(velocidad,pot,3);
g=@(x) f(af,x).*polyval(P,x);
Potencia_media=quad(g,0,10)
Potencia_media =

  197.2897

Ejercicio 3

%Ejercicio 3
%Beltrán Gutiérrez

m=20; %masa del cuerpo
k=20; %constanteelástica del muelle
%condiciones iniciales
x0=[1,0]; % 1 es posición inicial, 0 es velocidad inicial
tf=40; %tiempo final
figure(3)
for c=[5,40,200]
    f=@(t,x) [x(2);(-k*x(1)-c*x(2))/(m)]; % x(1) es el desplazamiento y x(2) es la velocidad
    [t,x]=ode45(f,[0,tf],x0);
    plot(t,x(:,1))
    hold on

end
legend('Cte de amortiguación 5','Cte de amortiguación 40','Cte de amortiguación 200')
grid on
xlabel('Tiempo (s)')
ylabel('Desplazamiento (m)');
title('Sistema masa-resorte-amortiguador')

Ejercicio 4

Desarrollar una GUI para calcular la flecha y longitud de un cable suspendido entre dos apoyos situados en el mismo nivel, así como la gráfica de la catenaria. La GUI debe aceptar como elementos de interacción: Vano a (m.): slider (50,1050) y entrada de texto Tensión T0 (kg.): entrada de texto Peso P (kg/m): entrada de texto Distancia mínima al suelo hmin (m.): entrada de texto

Código