Diego Cayón Terán

Contents

Ejercicio 1

%Apartado a)

type factr

%Apartado b)

type combina

%Apartado c)

type bernstein

figure(1)
t=linspace(0,1);
n=3;
for i=0:n
    b=bernstein(n,i,t);
    plot(t,b);
    hold on;
end
xlabel('t')
ylabel('Polinomio de Bernstein')
legend('B_3_,_0','B_3_,_1','B_3_,_2','B_3_,_3')

%Apartado d)

figure(2)
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));
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);
function f=factr(n)
 if n==0
     f=1;
 else
     f=n*factr(n-1);
 end
end

function c=combina(n,i)
    c=factr(n)/(factr(i)*factr(n-i));
end

function ber=bernstein(n,i,t)
    ber=combina(n,i)*(t.^i).*(1-t).^(n-i);
end

Ejercicio 2

%Apartado a)

figure(3)
[Y]=xlsread('sotaventogaliciaanual.xlsx');
hist(Y)

%Apartado b)

figure(4)
Y=xlsread('sotaventogaliciaanual.xlsx');
x=0.5:1:max(Y);
viento=hist(Y,x);
frec=viento/sum(viento);
f=@(a,x) (a(1)/a(2))*((x/a(2)).^(a(1)-1)).*exp(-(x/a(2)).^a(1));
k=std(Y);
c=mean(Y);
a0=[k c];
af=nlinfit(x,frec,f,a0)
hold on
bar(x,frec,'c');
x=linspace(0,max(Y),100);
y=f(af,x);
plot(x,y,'r')
xlabel('Velocidad')
ylabel('Frecuencia')

%Apartado c)

figure(5)
X=xlsread('sotavento_curva potencia.xlsx','A:A');
Y=xlsread('sotavento_curva potencia.xlsx','B:B');
xq=linspace(0,25);
vq1 = interp1(X,Y,xq,'pchip');
plot(X,Y,'o',xq,vq1,':.');
legend('Curva de potencia','Interpolación','Location','southeast');
grid on

%Apartado d)

% X=xlsread('sotavento_curva potencia.xlsx','A:A');
% Y=xlsread('sotavento_curva potencia.xlsx','B:B');
% %cálculo de la potencia media
% f=@(x) (k/c)*((x/c).^(k-1)).*exp(-(x/c).^k); %función de Weibull
% h=@(x) f(x).*polyval(p,x);
% power=quad(h,X)+Pr*quad(f,Y);
% fprintf('La potencia media es: %3.1f\n',power)
af =

    2.3849    6.0208

Ejercicio 3

figure(6)
m=20;
k=20;
c=5;c1=40;c2=200;
x0=[1,0];
tf=40;
f=@(t,x) [x(2);-c*x(2)/m-k*x(1)/m];
[t,x]=ode45(f,[0,tf],x0);
plot(t,x(:,1))
grid on
xlabel('t')
ylabel('x')
hold on
f1=@(t,x) [x(2);-c1*x(2)/m-k*x(1)/m];
[t,x]=ode45(f1,[0,tf],x0);
plot(t,x(:,1))
f2=@(t,x) [x(2);-c2*x(2)/m-k*x(1)/m];
[t,x]=ode45(f2,[0,tf],x0);
plot(t,x(:,1))

Ejercicio 4

%Ejecutar manualmente desde la carpeta el .m para abrir la GUI