Contents

Ejercicio 1

Una curva de tipo paramétrica muy utilizada en CAD es la de Bézier. Una curva de Bézier de grado n se define en términos de los polinomios de Bernstein

% Hace uso de las siguientes funciones

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

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

% function f=factr(n)
% if n==0
%     f=1;
% else
%     f=n*factr(n-1);
% end

% t=linspace(0,1,20);
% n=3;
% for i=0:3
%     b=bernstein(n,i,t);
%     hold on
%     plot(t,b)
% end
% legend('b0','b1','b2','b3')
% title('Gráfica de polinomios Bernstein n=3')

t=linspace(0,1,100);
V=[1, 2, 4, 4.6; 1, 3, -1, 1.5];
figure
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)
title('Curva de Bezier')

Ejercicio 2

%Calcula la distribución de Weibull
[V,Y]=xlsread('sotaventogaliciaanual.xlsx');
x=[0.5:1:max(V)];
[A,B]=hist(V,x);
k=w_media(B,A);
c=w_estandar(B,A)^2;
frec=A/sum(A);
f=@(a,x) (a(1)/a(2))*((x/a(2)).^(a(1)-1)).*exp(-(x/a(2)).^a(1));
a0=[k c];
af=nlinfit(x,frec,f,a0);
%Dibuja el histograma y la distribución de Weibull
figure
bar(x,frec);
hold on
z=linspace(0,max(V));
y=f(af,z);
plot(z,y)
title('Ajuste a la distribución de Weibull')
xlabel('Velocidad')
ylabel('Frecuencia')

Ejercicio 3

El movimiento de un sistema masa-resorte-amortiguador se describe por la ecuación diferencial m*d2x + c*dx + k*x = 0 Resolver mediante el solver ode45 para un periodo de 40 seg. Graficar en una misma gráfica el desplazamiento en función del tiempo para cada uno de los valores del coeficiente de amortiguamiento.

t0=0;
tf=40;
x0=[1 0];
[t,xx]=ode45(@ecdif1,[t0,tf],x0);
figure
plot(t,xx(:,1))
[t,xx]=ode45(@ecdif2,[t0,tf],x0);
hold on
plot(t,xx(:,1))
[t,xx]=ode45(@ecdif3,[t0,tf],x0);
hold on
plot(t,xx(:,1))
title('Movimiento de la masa')
xlabel('Tiempo')
ylabel('Posición')

function x=ecdif1(t,x)
x=[x(2);-(5/20)*x(2)-(20/20)*x(1)];
end
function x=ecdif2(t,x)
x=[x(2);-(40/20)*x(2)-(20/20)*x(1)];
end
function x=ecdif3(t,x)
x=[x(2);-(200/20)*x(2)-(20/20)*x(1)];
end